import { Alignment, AnyColumns, CellRenderer, ClassNameGetter, Column, FixedDirection, HeaderCellRenderer, HeaderClassGetter, KeyType } from "../types.js"; import { TableV2Props } from "../table.js"; import * as vue from "vue"; import { CSSProperties, Ref } from "vue"; //#region ../../packages/components/table-v2/src/composables/use-columns.d.ts declare function useColumns(props: TableV2Props, columns: Ref, fixed: Ref): { columns: vue.ComputedRef<{ key: KeyType; align?: Alignment; class?: string | ClassNameGetter | undefined; dataKey?: KeyType; fixed?: true | FixedDirection; flexGrow?: CSSProperties["flexGrow"]; flexShrink?: CSSProperties["flexShrink"]; title?: string; hidden?: boolean; headerClass?: string | HeaderClassGetter | undefined; maxWidth?: number; minWidth?: number; style?: CSSProperties; sortable?: boolean; width: number; cellRenderer?: CellRenderer | undefined; headerCellRenderer?: HeaderCellRenderer | undefined; }[]>; columnsStyles: vue.ComputedRef>; columnsTotalWidth: vue.ComputedRef; fixedColumnsOnLeft: vue.ComputedRef<{ key: KeyType; align?: Alignment; class?: string | ClassNameGetter | undefined; dataKey?: KeyType; fixed?: true | FixedDirection; flexGrow?: CSSProperties["flexGrow"]; flexShrink?: CSSProperties["flexShrink"]; title?: string; hidden?: boolean; headerClass?: string | HeaderClassGetter | undefined; maxWidth?: number; minWidth?: number; style?: CSSProperties; sortable?: boolean; width: number; cellRenderer?: CellRenderer | undefined; headerCellRenderer?: HeaderCellRenderer | undefined; }[]>; fixedColumnsOnRight: vue.ComputedRef<{ key: KeyType; align?: Alignment; class?: string | ClassNameGetter | undefined; dataKey?: KeyType; fixed?: true | FixedDirection; flexGrow?: CSSProperties["flexGrow"]; flexShrink?: CSSProperties["flexShrink"]; title?: string; hidden?: boolean; headerClass?: string | HeaderClassGetter | undefined; maxWidth?: number; minWidth?: number; style?: CSSProperties; sortable?: boolean; width: number; cellRenderer?: CellRenderer | undefined; headerCellRenderer?: HeaderCellRenderer | undefined; }[]>; hasFixedColumns: vue.ComputedRef; mainColumns: vue.ComputedRef; normalColumns: vue.ComputedRef<{ key: KeyType; align?: Alignment; class?: string | ClassNameGetter | undefined; dataKey?: KeyType; fixed?: true | FixedDirection; flexGrow?: CSSProperties["flexGrow"]; flexShrink?: CSSProperties["flexShrink"]; title?: string; hidden?: boolean; headerClass?: string | HeaderClassGetter | undefined; maxWidth?: number; minWidth?: number; style?: CSSProperties; sortable?: boolean; width: number; cellRenderer?: CellRenderer | undefined; headerCellRenderer?: HeaderCellRenderer | undefined; }[]>; visibleColumns: vue.ComputedRef<{ key: KeyType; align?: Alignment; class?: string | ClassNameGetter | undefined; dataKey?: KeyType; fixed?: true | FixedDirection; flexGrow?: CSSProperties["flexGrow"]; flexShrink?: CSSProperties["flexShrink"]; title?: string; hidden?: boolean; headerClass?: string | HeaderClassGetter | undefined; maxWidth?: number; minWidth?: number; style?: CSSProperties; sortable?: boolean; width: number; cellRenderer?: CellRenderer | undefined; headerCellRenderer?: HeaderCellRenderer | undefined; }[]>; getColumn: (key: KeyType) => { key: KeyType; align?: Alignment; class?: string | ClassNameGetter | undefined; dataKey?: KeyType; fixed?: true | FixedDirection; flexGrow?: CSSProperties["flexGrow"]; flexShrink?: CSSProperties["flexShrink"]; title?: string; hidden?: boolean; headerClass?: string | HeaderClassGetter | undefined; maxWidth?: number; minWidth?: number; style?: CSSProperties; sortable?: boolean; width: number; cellRenderer?: CellRenderer | undefined; headerCellRenderer?: HeaderCellRenderer | undefined; } | undefined; getColumnStyle: (key: KeyType) => CSSProperties; updateColumnWidth: (column: Column, width: number) => void; onColumnSorted: (e: MouseEvent) => void; }; type UseColumnsReturn = ReturnType; //#endregion export { UseColumnsReturn, useColumns };