import type { Bounds, Placement } from '@dimina-kit/view-anchor'; export type { Bounds, Placement }; export interface DesiredView { viewId: string; placement: Placement; layer: number; extra?: Extra; } export interface PlacementSnapshot { generation: number; epoch: number; views: DesiredView[]; } export type ViewOp = { kind: 'setBounds'; viewId: string; bounds: Bounds; extra?: Extra; } | { kind: 'attach'; viewId: string; } | { kind: 'setVisible'; viewId: string; visible: boolean; } | { kind: 'detach'; viewId: string; } | { kind: 'reorder'; order: string[]; }; export interface ActualView { attached: boolean; visible: boolean; bounds?: Bounds; extra?: Extra; } export interface ReconcilerState { generation: number; lastEpoch: number; desired: Map>; actual: Map>; } export declare function createInitialState(): ReconcilerState; export declare function reconcile(prev: ReconcilerState, snapshot: PlacementSnapshot): { state: ReconcilerState; ops: ViewOp[]; }; //# sourceMappingURL=placement-reconcile.d.ts.map