import type { Page } from "playwright";
import type { MatrixCell } from "../../schema/src/records/context.js";
import { type ArtifactPayload, type ArtifactRef } from "./artifacts.js";
import { type LayoutShiftEntry } from "./layout-shift-observer.js";
import { type RedactionRule } from "./redaction.js";
import type { SettledReport } from "./settled.js";
export type { ArtifactRef } from "./artifacts.js";
export type ConsoleEntry = {
    type: string;
    text: string;
    location?: {
        url?: string;
        lineNumber?: number;
        columnNumber?: number;
    };
    stack?: string;
};
export type NetworkEntry = {
    url: string;
    method: string;
    status?: number;
    resourceType: string;
    requestHeaders?: Record<string, string>;
    responseHeaders?: Record<string, string>;
    requestBody?: string;
    responseBody?: string;
};
export type { LayoutShiftEntry } from "./layout-shift-observer.js";
export type CellEvidence = {
    cell: MatrixCell;
    console: ConsoleEntry[];
    network: NetworkEntry[];
    domSnapshot: ArtifactRef;
    performance: {
        layoutShifts: LayoutShiftEntry[];
    };
    screenshots: {
        original: ArtifactRef;
    };
    trace?: ArtifactRef;
    settled: SettledReport;
};
export type CellEvidencePayload = {
    cell: MatrixCell;
    console: ConsoleEntry[];
    network: NetworkEntry[];
    domSnapshot: ArtifactPayload;
    performance: {
        layoutShifts: LayoutShiftEntry[];
    };
    screenshots: {
        original: ArtifactPayload;
    };
    trace?: ArtifactPayload;
    settled: SettledReport;
};
export type CaptureBuckets = {
    console: ConsoleEntry[];
    network: NetworkEntry[];
};
export type EvidenceCaptureOptions = {
    console: boolean;
    network: boolean;
};
export type PageArtifactCaptureOptions = {
    domSnapshot: boolean;
    screenshot: boolean;
    performance: boolean;
    trace: boolean;
};
export type CapturedPageArtifacts = {
    domSnapshot: ArtifactPayload;
    screenshotOriginal: ArtifactPayload;
    layoutShifts: LayoutShiftEntry[];
    trace?: ArtifactPayload;
};
export declare function attachEvidenceCapture(page: Page, buckets: CaptureBuckets, options: EvidenceCaptureOptions): void;
export declare function capturePageArtifacts(page: Page, options: PageArtifactCaptureOptions): Promise<CapturedPageArtifacts>;
export declare function finalizeCapturedEvidence(input: {
    cell: MatrixCell;
    buckets: CaptureBuckets;
    settled: SettledReport;
    artifacts: CapturedPageArtifacts;
}): CellEvidencePayload;
export declare function writeCellArtifacts(runDir: string, cellId: string, evidence: CellEvidencePayload, rules: RedactionRule[]): Promise<CellEvidence>;
//# sourceMappingURL=capture.d.ts.map