import type { Browser, Page } from "playwright";
import type { HarnessEvent } from "../../core/src/classify/classifier.js";
import type { MatrixCell } from "../../schema/src/records/context.js";
import type { AuthAdapter, AuthProof } from "./auth.js";
import { type SettledReport, type SettleOptions } from "./settled.js";
import type { LayoutShiftEntry } from "./layout-shift-observer.js";
import type { RedactionRule } from "./redaction.js";
export type { LayoutShiftEntry } from "./layout-shift-observer.js";
export type ArtifactRef = {
    relativePath: string;
    mediaType: string;
    contentHash: string;
    redactionState: "none" | "partial" | "full";
    dimensions?: {
        width: number;
        height: number;
    };
    sourceRunId: string;
};
export type HarnessEventInput = HarnessEvent;
export type ConsoleEntry = {
    type: string;
    text: string;
    location?: {
        url?: string;
        lineNumber?: number;
        columnNumber?: number;
    };
};
export type NetworkEntry = {
    url: string;
    method: string;
    status?: number;
    resourceType: string;
};
export type PageProbe = {
    now?: number;
    random?: number;
    tz?: string;
    stored?: string | null;
    layout?: {
        locale: string;
        width: number;
        height: number;
    };
};
export type CellEvidence = {
    cell: MatrixCell;
    documentDirection?: string;
    console: ConsoleEntry[];
    network: NetworkEntry[];
    domSnapshot?: ArtifactRef;
    performance: {
        layoutShifts: LayoutShiftEntry[];
    };
    screenshots?: {
        original: ArtifactRef;
    };
    trace?: ArtifactRef;
    settled: SettledReport;
    pageProbe?: PageProbe;
};
export type CaptureOptions = {
    console: boolean;
    network: boolean;
    domSnapshot: boolean;
    screenshot: boolean;
    trace: boolean;
    performance: boolean;
    settle?: SettleOptions;
};
export type { AuthAdapter, AuthProof } from "./auth.js";
export type CellResult = {
    kind: "evidence";
    evidence: CellEvidence;
    authProof?: AuthProof;
} | {
    kind: "harness";
    outcome: HarnessEventInput;
    partialEvidence?: CellEvidence;
};
export type RunCellInput = {
    cell: MatrixCell;
    baseUrl: string;
    browser: Browser;
    seed: string;
    clockStart: string;
    authAdapter?: AuthAdapter;
    capture: CaptureOptions;
    timeouts: {
        navigateMs: number;
        settleMs: number;
    };
    artifactRunDir?: string;
    sourceRunId?: string;
    redactionRules?: RedactionRule[];
};
export declare function readDocumentDirection(page: Page): Promise<string>;
export { awaitSettled, type SettledReport, type SettleOptions } from "./settled.js";
export declare function runCell(input: RunCellInput): Promise<CellResult>;
//# sourceMappingURL=cell-runner.d.ts.map