export type AuditSurface = "web" | "ios" | "react-native" | "diff" | "video"; export type AuditInput = { url?: string; html?: string; nodes?: unknown; source?: string; screenshot?: string; diff?: string; surface?: AuditSurface; intent?: string; project?: string; profile?: string; }; export type AuditSkipped = { tool: string; reason: string; }; export type AuditReport = { surface: AuditSurface | null; target: string | null; project: string | null; ran: string[]; skipped: AuditSkipped[]; summary: { grade: string; failures: number; warnings: number; }; findings: Record; next: string; clarification?: string; }; type AuditRunner = (tool: string, args: Record) => unknown | Promise; type NamedAuditRunner = (args: Record) => unknown | Promise; export type AuditDispatchOptions = { run?: AuditRunner; runners?: Record; remote?: boolean; remoteGatedTools?: ReadonlySet; remoteArgGuards?: Record; remoteUrlGuardedTools?: Record; remoteUrlGuardError?: (url: string) => Promise; }; export declare const AUDIT_ROUTES: Readonly>; export declare function detectAuditSurface(input: AuditInput): AuditSurface | null; export declare function routeAuditTools(surface: AuditSurface, input?: AuditInput): string[]; export declare function subAuditArgs(tool: string, input: AuditInput): Record; export declare function dispatchAudit(input: AuditInput, options: AuditDispatchOptions): Promise; export type LayoutElement = { selector: string; rect: { x: number; y: number; w: number; h: number; }; computed?: { padding?: string; margin?: string; gap?: string; fontSize?: string; color?: string; background?: string; }; }; export declare function auditLayoutSnapshot(elements: LayoutElement[], viewport: { w: number; h: number; }): { elements_analyzed: number; viewport: { w: number; h: number; }; findings: { check: string; status: "pass" | "warn"; message: string; fix?: string; }[]; metrics: { alignment: { total_columns: number; shared_columns: number; singleton_columns: number; aligned_ratio: number; }; gap_rhythm: { samples: number; median_px: number; stdev_px: number; coef_variation: number; note?: undefined; } | { samples: number; note: string; median_px?: undefined; stdev_px?: undefined; coef_variation?: undefined; }; balance: { left_weight: number; right_weight: number; skew_pct: number; }; }; orphan_stretch: import("./layout-orphans.js").OrphanStretchResult; }; export {};