import { RefObject } from 'react'; import { AnimationControls } from 'framer-motion'; import { AuraConfig, BenchmarkApiResponse, InferenceDiagnostics, IqaState, Landmark, LogEntry, Phase, ScanMode, ScanResult } from '../model/types.js'; import { ConfigDraft } from '../model/config-draft.js'; import { SpectreTheme } from '../../snap/types.js'; export interface UseScanOrchestratorParams { videoRef: RefObject; canvasRef: RefObject; apiKey: string; baseUrl?: string; config: ConfigDraft; externalUserId: string; initialMode: ScanMode; redirectUrl: string | null; theme?: SpectreTheme; showLog: (text: string, kind: LogEntry["kind"]) => void; clearLog: () => void; snapCbRef: React.MutableRefObject; } export interface UseScanOrchestratorReturn { phase: Phase; mode: ScanMode; result: ScanResult | null; activeSegments: ReadonlySet; revealedSegments: number; draftCapture: string | null; analysisOpen: boolean; currentLandmarks: Landmark[] | null; iqaState: IqaState; iqaMessage: { text: string; kind: string; }; cameraReady: boolean; glitchOpacity: number; auraConfig: AuraConfig; statusText: string; avatarControls: AnimationControls; handleReset: () => void; setAnalysisOpen: (v: boolean) => void; executeApiSubmission: (b64: string) => Promise; triggerRedirectNow: () => void; triggerFailureEvents: () => void; pendingDiagnostics: InferenceDiagnostics | null; continueFromDiagnostics: () => void; pendingBenchmark: BenchmarkApiResponse | null; dismissBenchmark: () => void; } export declare function useScanOrchestrator({ videoRef, canvasRef, apiKey, baseUrl, config, externalUserId, initialMode, redirectUrl, theme, showLog, clearLog, snapCbRef, }: UseScanOrchestratorParams): UseScanOrchestratorReturn; //# sourceMappingURL=use-scan-orchestrator.d.ts.map