import type { Placement, ReconcilerState, ViewOp } from './placement-reconcile.js'; export interface CleanView { viewId: string; placement: Placement; layer: number; } export interface CleanSnapshot { generation: number; epoch: number; views: CleanView[]; } export type Authorizer = (slotToken: string) => { viewId: string; layer: number; } | null; export declare function cleanSnapshot(raw: unknown, authorize: Authorizer): CleanSnapshot | null; /** * Collapse reconcile ops onto a two-state per-view sink. Gathers the viewIds any * op touched (reorder excluded — deck z-order is compositor zone-fixed), then for * each reads the reconciled end-state from `state.actual`: attached+visible+bounds * → apply({visible:true,bounds}); otherwise apply({visible:false}). Reading from * `actual` (not the op itself) means a bare restore still carries its bounds. * * Each apply runs in its own try/catch: one throwing sink (e.g. a destroyed native * view) must not abort the rest of the dispatch. */ export declare function dispatchOps(ops: ViewOp[], state: ReconcilerState, resolveApply: (viewId: string) => ((p: Placement) => void) | null): void; //# sourceMappingURL=snapshot-reconcile.d.ts.map