import { type ScreenshotPageRunInput, type ScreenshotVariantExecution } from "./capture-run-optimizer.js"; export type CaptureTheme = "light" | "dark"; export interface CaptureViewport { width: number; height: number; } export interface CaptureTargetLike { id: string; label: string; viewport: CaptureViewport; deviceFrame?: string; mockupOptions?: { orientation?: "portrait" | "landscape" | string; } | null; } export interface CapturePageDefinitionLike { id?: string | null; prompt?: string | null; url?: string | null; } export interface CaptureRequestPlanInput { url: string; prompt?: string | null; targets?: TTarget[] | null; viewports?: CaptureViewport[] | null; deviceFrame?: string | null; mockupOptions?: TTarget["mockupOptions"]; outputScale?: number | null; langs?: string[] | null; themes?: Array | null; elements?: TElement[] | null; pages?: CapturePageDefinitionLike[] | null; } export interface CaptureRequestPlan { targets: TTarget[]; outputScale: number; langs: string[]; themes: Array; elements: TElement[]; pageRuns: ScreenshotPageRunInput[]; variantPlan: ScreenshotVariantExecution[]; requestedCaptureCount: number; totalCaptures: number; /** Warnings about non-fatal issues (e.g. unknown device frames). */ warnings: string[]; } export declare function hasNonEmptyCapturePrompt(prompt: string | null | undefined): boolean; export declare function getCapturePromptValidationError(input: Pick): string | null; export declare function normalizeOutputScale(scale?: number | null): number; export declare function resolveCaptureLangs(raw: unknown): string[]; export declare function resolveCaptureThemes(raw: unknown): Array; export declare function buildCapturePageRuns(input: Pick): ScreenshotPageRunInput[]; export declare function normalizeCaptureTargets(input: Pick, "targets" | "viewports" | "deviceFrame" | "mockupOptions">): Promise; export declare function sanitizeStorageSegment(value: string | null | undefined): string; export declare function getCaptureUrlHostname(value: string | null | undefined): string; export declare function normalizeComparableUrl(value: string | null | undefined): string; export declare function urlsPointToSameCaptureState(left: string | null | undefined, right: string | null | undefined): boolean; export declare function resolveCaptureRequestPlan(input: CaptureRequestPlanInput): Promise>;