export interface TableHeader {
    title?: string;
    key?: string;
    sortable?: boolean;
    editable?: boolean;
    width?: number | string;
    minWidth?: number | string;
    maxWidth?: number | string;
    align?: 'start' | 'center' | 'end';
    fixed?: boolean | 'left' | 'right';
    resizable?: boolean;
    filterable?: boolean;
    filterOptions?: Array<{
        text: string;
        value: any;
    }>;
    filterMultiple?: boolean;
    filterMethod?: (value: any, row: any, column: any) => boolean;
    sortMethod?: (a: any, b: any) => number;
    sortBy?: string | ((row: any) => any) | (string | ((row: any) => any))[];
    sortOrders?: ('ascending' | 'descending')[];
    formatter?: (row: any, column: any, cellValue: any, index: number) => any;
    className?: string | ((data: {
        row: any;
        rowIndex: number;
        column: any;
        columnIndex: number;
    }) => string);
    headerClassName?: string | ((data: {
        row: any;
        rowIndex: number;
        column: any;
        columnIndex: number;
    }) => string);
    showOverflowTooltip?: boolean | {
        [key: string]: any;
    };
    renderHeader?: (data: {
        column: any;
        $index: number;
    }) => any;
    render?: (data: {
        row: any;
        column: any;
        $index: number;
    }) => any;
    children?: TableHeader[];
    type?: 'selection' | 'index' | 'expand';
    index?: number | ((index: number) => number);
    selectable?: (row: any, index: number) => boolean;
    reserveSelection?: boolean;
    filters?: {
        text: string;
        value: any;
    }[];
    filterPlacement?: string;
    filteredValue?: any[];
    columnKey?: string;
    [key: string]: any;
}
export interface HeaderOptions {
    selectable?: boolean;
    hasActions?: boolean;
    actionsWidth?: number | string;
    showSelection?: boolean;
    showIndex?: boolean;
    indexLabel?: string;
    indexMethod?: (index: number) => number;
}
export declare function useTableHeaders(headers: TableHeader[], options?: HeaderOptions): {
    headers: import("vue").ComputedRef<TableHeader[]>;
    visibleColumns: import("vue").ComputedRef<TableHeader[]>;
    fixedColumns: import("vue").ComputedRef<TableHeader[]>;
    leftFixedColumns: import("vue").ComputedRef<TableHeader[]>;
    rightFixedColumns: import("vue").ComputedRef<TableHeader[]>;
    scrollableColumns: import("vue").ComputedRef<TableHeader[]>;
    getColumnByKey: (key: string) => TableHeader | undefined;
    getColumnIndex: (key: string) => number;
};
//# sourceMappingURL=useTableHeaders.d.ts.map