import type { ViewerApi } from '../../core/types/viewer-api'; export type GateResult = { ok: boolean; degraded: boolean; }; type GuardDeps = { setTimeoutFn: typeof setTimeout; clearTimeoutFn: typeof clearTimeout; requestAnimationFrame?: (callback: FrameRequestCallback) => number; cancelAnimationFrame?: (handle: number) => void; posePaintedTimeoutMs: number; sourceOpenTimeoutMs: number; layoutStabilityFrameCount?: number; }; type GuardContext = { currentRunId: () => string | null; registerCleanup: (cleanup: () => void) => void; }; export declare const createTransitionGuard: (viewer: ViewerApi, deps: GuardDeps, ctx: GuardContext) => { waitForManifestChange: (runId: string, expectedManifestId: string) => Promise; waitForCanvasesAvailable: (runId: string, expectedCanvasIndex: number) => Promise; waitForPageChange: (runId: string, expectedCanvasIndex: number, _manifestJustChanged?: boolean, expectedCanvasId?: string) => Promise; waitForPosePainted: (runId: string) => Promise; waitForContainerStable: (runId: string) => Promise; }; export {};