import type{LyraDashboardCell,LyraDashboardCollisionPolicy,LyraDashboardPlacementResult}from'./layout-types.js';export type DashboardAuthoredCellSnapshot=Readonly;interface DashboardCellRect{readonly cellId:string;readonly x:number;readonly y:number;readonly w:number;readonly h:number;}export interface DashboardSpatialIndex{readonly columns:number;readonly byId:ReadonlyMap;readonly orderById:ReadonlyMap;readonly columnBuckets:readonly(readonly LyraDashboardCell[])[];}export interface DashboardPlacementMetrics{intervalQueries:number;intervalInsertions:number;collisionCandidates:number;} /** Reads at most the admitted prefix and copies every dashboard-owned field once. */ export declare function snapshotDashboardLayout(input:unknown):readonly DashboardAuthoredCellSnapshot[];export declare function clampDashboardCandidate(cell:Pick,requested:Readonly<{x:number;y:number;w:number;h:number;}>,columnsInput:number):Readonly<{x:number;y:number;w:number;h:number;}>;export declare function projectDashboardLayout(input:readonly DashboardAuthoredCellSnapshot[],columnsInput:number):readonly LyraDashboardCell[];export declare function normalizeLyraDashboardCollisionPolicy(value:unknown):LyraDashboardCollisionPolicy;export declare function overlapsDashboardCells(a:DashboardCellRect,b:DashboardCellRect):boolean;export declare function sortDashboardSpatial(layout:readonly LyraDashboardCell[]):readonly LyraDashboardCell[];export declare function createDashboardSpatialIndex(layout:readonly LyraDashboardCell[],columnsInput:number):DashboardSpatialIndex;export declare function findDashboardCollisions(index:DashboardSpatialIndex,candidate:DashboardCellRect,metrics?:DashboardPlacementMetrics):readonly string[];export declare function resolveDashboardPlacement(layout:readonly LyraDashboardCell[],candidateCellId:string,requested:Readonly<{x:number;y:number;w:number;h:number;}>,columnsInput:number,policyInput:LyraDashboardCollisionPolicy,metrics?:DashboardPlacementMetrics):LyraDashboardPlacementResult;export{};