import type { MaybeRef } from 'vue'; import type { ColumnDef } from '../types'; export type ColumnPinState = 'left' | 'right' | 'none'; export interface ColumnStateColumn> extends ColumnDef { id: string; hidden: boolean; pin: ColumnPinState; } export interface ColumnStateSnapshot { order: string[]; hidden: Record; pin: Record; widths: Record; minWidths: Record; maxWidths: Record; } export interface ColumnStatePersistenceAdapter { load: () => Partial | null | undefined; save: (snapshot: ColumnStateSnapshot) => void; } export interface UseColumnStateOptions> { columns: ColumnDef[]; adapter?: ColumnStatePersistenceAdapter; } export interface ColumnSizingUpdate { width?: number | string; minWidth?: number; maxWidth?: number; } export declare function createInMemoryColumnStateAdapter(initialState?: Partial): ColumnStatePersistenceAdapter; export declare function useColumnState>(options: MaybeRef>): { columnOrder: import("vue").Ref; orderedColumns: import("vue").ComputedRef[]>; visibleColumns: import("vue").ComputedRef[]>; pinnedLeftColumns: import("vue").ComputedRef[]>; centerColumns: import("vue").ComputedRef[]>; pinnedRightColumns: import("vue").ComputedRef[]>; getSnapshot: () => ColumnStateSnapshot; setColumnOrder: (nextOrder: string[]) => void; setColumnVisibility: (columnId: string, hidden: boolean) => void; setColumnPin: (columnId: string, pin: ColumnPinState) => void; setColumnSizing: (columnId: string, sizing: ColumnSizingUpdate) => void; };