import { ConsoleReporter } from "./console-reporter";
import type { OpStep, ScenarioSpec } from "../contracts/testing-metadata.types";
import type { StepPhase } from "../contracts/runtime-context.types";
interface TestStepResult {
    phase: string;
    operation: string;
    name?: string;
    ok: boolean;
    durationMs: number;
    error?: string;
}
interface TestScenarioResult {
    id: string;
    name?: string;
    ok: boolean;
    durationMs: number;
    error?: string;
    steps: TestStepResult[];
}
export interface TestRunPayload {
    runName: string;
    startedAt: string;
    completedAt: string;
    durationMs: number;
    exitCode: number;
    total: number;
    passed: number;
    failed: number;
    scenarios: TestScenarioResult[];
}
export declare class WebhookReporter extends ConsoleReporter {
    private readonly webhookUrl;
    private readonly runName;
    private readonly startedAt;
    private readonly accumulated;
    private currentSteps;
    constructor(webhookUrl: string, runName: string);
    onStepEnd(args: {
        scenarioId: string;
        phase: StepPhase;
        step: OpStep;
        ok: boolean;
        error?: unknown;
        durationMs: number;
    }): void;
    onScenarioEnd(scenario: ScenarioSpec, result: {
        ok: boolean;
        error?: unknown;
        durationMs: number;
    }): void;
    flush(exitCode: number): Promise<void>;
}
export {};
//# sourceMappingURL=webhook-reporter.d.ts.map