import { type ReviewUiMediaProxyDependencies } from './review-ui-media-proxy.js'; export interface ReviewUiServerLaunch { url: string; host: string; port: number; root: string; projectSlug: string; uiPath: string; dryRun: boolean; authRequired: true; remoteAccess: boolean; close?: () => Promise; } export interface ReviewUiServerHandlers { buildInventory(root: string, projectSlug: string): Promise; saveDecision(root: string, projectSlug: string, body: unknown): Promise; recordStillCandidate(root: string, projectSlug: string, body: unknown): Promise; recordUpscaledCandidate(root: string, projectSlug: string, body: unknown): Promise; recordStillRequest(root: string, projectSlug: string, body: unknown): Promise; recordCharacterRequest(root: string, projectSlug: string, body: unknown): Promise; resolveRemoteMedia(root: string, projectSlug: string, id: string | null): Promise; customMutations?: Record Promise>; } export declare class ReviewUiRequestError extends Error { readonly statusCode: 400 | 403 | 409; constructor(statusCode: 400 | 403 | 409, message: string); } export interface ReviewUiServerOptions { root: string; projectSlug: string; host?: string; port?: number; uiPath?: string; dryRun?: boolean; allowRemote?: boolean; mediaProxyDependencies?: ReviewUiMediaProxyDependencies; } export declare function timingSafeStringEqual(left: string, right: string): boolean; export declare function launchReviewUiServer(options: ReviewUiServerOptions, handlers: ReviewUiServerHandlers): Promise; //# sourceMappingURL=review-ui-server.d.ts.map