import type { AlertEvaluation } from './evaluator';
import type { HealthCheck, HealthResult } from './model';
import { AlertStore } from './store';
type FetchLike = (input: string, init: {
    method: string;
    headers?: Record<string, string>;
    signal: AbortSignal;
    redirect: 'manual';
}) => Promise<Response>;
type CommandLike = (command: string[], timeoutMs: number) => Promise<{
    exitCode: number;
    stdout: string;
    stderr: string;
}>;
export declare class HealthCheckRunner {
    private readonly store;
    private readonly options;
    constructor(store: AlertStore, options?: {
        fetchImpl?: FetchLike;
        commandImpl?: CommandLike;
        lookupImpl?: (hostname: string) => Promise<unknown>;
        now?: () => Date;
        agent?: string;
        region?: string;
    });
    private now;
    probe(check: HealthCheck): Promise<Omit<HealthResult, 'id'>>;
    run(check: HealthCheck): Promise<HealthResult>;
    runAndEvaluate(check: HealthCheck): Promise<{
        result: HealthResult;
        evaluations: AlertEvaluation[];
    }>;
}
export {};
