export interface MeasuredRect { readonly x: number; readonly y: number; readonly width: number; readonly height: number; } export interface RuntimeNodeIndicatorRect extends MeasuredRect { readonly nodeId: string; readonly showUnsupportedIndicator: boolean; } type RuntimeNodeMeasurementSource = 'authored-root' | 'runtime-recorder'; export interface RuntimeNodeMeasurement { readonly getResizeTargets?: () => readonly TResizeTarget[]; readonly measure: () => Promise; readonly showUnsupportedIndicator: boolean; readonly source: RuntimeNodeMeasurementSource; } export type RuntimeNodeMeasurements = ReadonlyMap>>; export interface ResizeTargetObserver { readonly disconnect: () => void; readonly observe: (target: TResizeTarget) => void; readonly unobserve: (target: TResizeTarget) => void; } export interface ActiveResizeTargetCoordinator { readonly disconnect: () => void; readonly getObservedTargets: () => ReadonlySet; readonly sync: (measurements: readonly RuntimeNodeMeasurement[], additionalTargets?: readonly TResizeTarget[]) => void; } export interface RuntimeNodeMeasurementRegistry { readonly getMeasurements: () => RuntimeNodeMeasurements; readonly register: (nodeId: string, measurement: RuntimeNodeMeasurement) => () => void; } export declare function runtimeNodeMeasurementChangeAffectsActiveIndicators(options: { readonly isEditMode: boolean; readonly activeDragNodeId?: string | null; readonly measurements: ReadonlySet>; readonly nodeId: string; readonly selectedNodeId: string | null; }): boolean; export declare function shouldRenderSelectedNodeChrome(platform: string, isEditMode: boolean, selectedNodeId: string | null): boolean; export interface NativeMeasurableView { readonly measureInWindow: (callback: (x: number, y: number, width: number, height: number) => void) => void; } export declare function unionMeasuredRects(rects: readonly MeasuredRect[]): MeasuredRect | null; export declare function measureNativeRuntimeNodeView(view: NativeMeasurableView): Promise; export declare function createNativeRuntimeNodeMeasurement(view: NativeMeasurableView, showUnsupportedIndicator: boolean): RuntimeNodeMeasurement; export declare function createRuntimeNodeMeasurementRegistry(options?: { readonly onChange?: () => void; }): RuntimeNodeMeasurementRegistry; export declare function getActiveRuntimeNodeMeasurements(runtimeNodes: RuntimeNodeMeasurements, isEditMode: boolean, selectedNodeId: string | null, activeDragNodeId?: string | null): readonly RuntimeNodeMeasurement[]; export declare function hasActiveRuntimeNodeMeasurements(runtimeNodes: RuntimeNodeMeasurements, isEditMode: boolean, selectedNodeId: string | null, activeDragNodeId?: string | null): boolean; export declare function measureRuntimeNodeIndicators(options: { readonly isEditMode: boolean; readonly activeDragNodeId?: string | null; readonly canvasRootNodeId?: string | null; readonly rootRect: MeasuredRect | null; readonly runtimeNodes: RuntimeNodeMeasurements; readonly selectedNodeId: string | null; }): Promise; export declare function createActiveResizeTargetCoordinator(observer: ResizeTargetObserver): ActiveResizeTargetCoordinator; export declare function createSelectedIndicatorViewProps(rect: RuntimeNodeIndicatorRect, borderColor: string): { readonly pointerEvents: 'none'; readonly style: { readonly position: 'absolute'; readonly left: number; readonly top: number; readonly width: number; readonly height: number; readonly borderWidth: 2; readonly borderColor: string; readonly borderRadius: 4; }; }; export {}; //# sourceMappingURL=runtimeNodeMeasurement.d.ts.map