import { Ref } from 'vue';
import { DataListColumn, DataListColumnWidth, DataListRow } from './DataList.model';
type LayoutProps = {
    autoWidth: boolean;
    autoWidthSample: number;
    autoWidthMax: number;
    data: DataListRow[];
};
type UseDataListLayoutOptions = {
    initialColumnWidths?: DataListColumnWidth[] | null;
    externalColumnWidths?: Ref<DataListColumnWidth[] | null>;
};
/**
 * Handles DataList layout responsibilities:
 * - CSS grid template generation
 * - auto-width measurement
 * - manual column resize lifecycle
 * - syncing controlled/uncontrolled column widths
 */
export declare const useDataListLayout: (props: LayoutProps, rootRef: Ref<HTMLElement | null>, allColumns: Ref<DataListColumn[]>, visibleColumns: Ref<DataListColumn[]>, selectable: Ref<boolean>, hasRowActions: Ref<boolean>, hasColumnMenu: Ref<boolean>, options?: UseDataListLayoutOptions) => {
    gridStyles: import('vue').ComputedRef<{
        '--data-list-columns': string;
    }>;
    scheduleMeasure: () => void;
    startColumnResize: (column: DataListColumn, event: MouseEvent) => void;
    resetColumnWidths: () => void;
    isResizingColumn: Ref<boolean, boolean>;
    columnWidths: import('vue').ComputedRef<DataListColumnWidth[]>;
};
export {};
