import { Ref } from 'vue'; export interface DataTableShimmerLayer { /** The table's box inside the root, which the bands are positioned against. */ top: number; left: number; width: number; height: number; bands: Array<{ index: number; top: number; height: number; }>; } interface DataTableLayoutOptions { root: Readonly>; table: Readonly>; /** Header cell positions whose widths feed the sticky offsets. */ stickyCells: () => number[]; /** The root scrolls itself (`scrollX` or the sticky shell). */ scroller: () => boolean; /** Which measurements are live; each costs a layout read per frame it runs. */ overlay: () => boolean; placeholders: () => boolean; shimmer: () => boolean; } export declare function useDataTableLayout(options: DataTableLayoutOptions): { cellWidths: Ref, Record>; overflowLeft: Ref; overflowRight: Ref; viewportHeight: Ref; fillRows: Ref; shimmerLayer: import('vue').ShallowRef; track: (source: () => unknown) => void; schedule: () => void; }; export {};