import { type SeedHtmlSecurityFinding } from "../content-security/index.js";
export type SeedBrowserKind = "chromium" | "firefox";
export type SeedBrowserSnapshotStatus = "captured" | "blocked" | "browser_not_found" | "failed" | "unsupported";
export type SeedBrowserSnapshotTarget = {
    input: string;
    url?: string;
    resolved_path?: string;
    trust: "local_checked" | "external_untrusted";
};
export type SeedBrowserSnapshotCapture = {
    status: SeedBrowserSnapshotStatus;
    target: SeedBrowserSnapshotTarget;
    browser?: {
        command: string[];
        kind: SeedBrowserKind;
        discovered: boolean;
    };
    viewport: {
        width: number;
        height: number;
    };
    captured_at: string;
    title?: string;
    html?: string;
    text?: string;
    accessibility_tree?: string;
    security?: SeedBrowserSnapshotSecurity;
    screenshot?: {
        content: Buffer;
        sha256: string;
        byte_size: number;
        mime_type: "image/png";
    };
    diagnostics: string[];
    command_results: SeedBrowserCommandResult[];
};
export type SeedBrowserSnapshotSecurity = {
    hidden_elements: SeedHtmlSecurityFinding[];
    aria_injections: SeedHtmlSecurityFinding[];
    unsafe_urls: SeedHtmlSecurityFinding[];
};
export type SeedBrowserCommandResult = {
    step: "version" | "dump_dom" | "screenshot";
    command: string[];
    exit_code: number | null;
    stdout: string;
    stderr: string;
    timed_out: boolean;
};
export type SeedBrowserSnapshotDocument = {
    type: "seed.browser_snapshot";
    schema_version: 1;
    url?: string;
    title?: string;
    captured_at: string;
    viewport: {
        width: number;
        height: number;
    };
    text: string;
    html: string;
    accessibility_tree: string;
    security?: SeedBrowserSnapshotSecurity;
    screenshot_path?: string;
    capture: {
        status: SeedBrowserSnapshotStatus;
        target: SeedBrowserSnapshotTarget;
        browser?: {
            command: string[];
            kind: SeedBrowserKind;
            discovered: boolean;
        };
        diagnostics: string[];
        command_results: Array<Omit<SeedBrowserCommandResult, "stdout" | "stderr"> & {
            stdout_excerpt: string;
            stderr_excerpt: string;
        }>;
    };
};
export declare function captureSeedBrowserSnapshot(input: {
    target: string;
    cwd: string;
    allowExternal?: boolean;
    browserCommand?: string[];
    browserKind?: SeedBrowserKind;
    allowCustomBrowserCommand?: boolean;
    timeoutMs?: number;
    viewport?: {
        width?: number;
        height?: number;
    };
    now?: () => string;
}): Promise<SeedBrowserSnapshotCapture>;
export declare function buildSeedBrowserSnapshotDocument(capture: SeedBrowserSnapshotCapture, input: {
    screenshotPath?: string;
}): SeedBrowserSnapshotDocument;
