import { TableProps, PrimaryKey, Row, ColumnSpecSettings, DataSource } from './types';
export declare function createState(props: TableProps): {
    data: {
        rowIndex: number;
        pendingLoads: number;
        columns: readonly {
            label: string;
            id: string;
            width: number;
            justify?: ("center" | "start") | undefined;
            sort?: {
                direction: "DESC" | "ASC" | undefined;
            } | undefined;
            component?: (() => import('vue').Component) | undefined;
            editable?: boolean | undefined;
            valueType?: import('./types').ValueType | undefined;
            frozen?: boolean | undefined;
        }[];
        rows: readonly {
            dataRow: import('./types').DataRow;
            index: number;
            primaryKey: PrimaryKey;
            offset: number;
            height: number;
        }[];
        currentWindow?: {
            bodyHeight: number;
            scrollTop: number;
        } | undefined;
        resize: boolean;
        resizeTh?: {
            colId: string;
            width: number;
            x: number;
            right: number;
        } | undefined;
        dataHeight: number;
        bodyHeight: number;
        bodyWidth: number;
        scrollTop: number;
        scrollLeft: number;
        selectedRows: Set<PrimaryKey> & Omit<Set<PrimaryKey>, keyof Set<any>>;
        selectedColumns: Set<string> & Omit<Set<string>, keyof Set<any>>;
        error?: unknown;
    };
    settings: import('vue').ComputedRef<Readonly<{
        columns: ColumnSpecSettings<string, unknown>[];
        dataSource: DataSource<import('./types').DataRow>;
        gap?: number;
        height: number;
        addColumn?: () => Promise<void>;
        controlColumn?: boolean;
        onSelectedRows?: import('./types').SelectedRowsOperation<import('./types').DataRow>[] | undefined;
        onSelectedColumns?: import('./types').SelectedColumnsOperation<import('./types').DataRow>[] | undefined;
        onUpdatedRow?: ((row: Row<import('./types').DataRow>) => void) | undefined;
    }>>;
    tableColumns: import('vue').ComputedRef<import('./types').TableColumn[]>;
    tableRows: import('vue').ComputedRef<import('./types').TableRow[]>;
    adjustWidth: () => void;
    updateOffsets(ev: {
        deltaY: number;
        deltaX: number;
    }): void;
    getSelectedRows(): Row[];
    getSelectedColumns(): ColumnSpecSettings[];
    selectRow(rowId: PrimaryKey): void;
    unselectRow(rowId: PrimaryKey): void;
    selectColumn(columnId: string): void;
    unselectColumn(columnId: string): void;
    updateScrollTop(scrollTop: number): void;
    updateScrollLeft(scrollLeft: number): void;
    updateBodyHeight(): void;
    updateDimensions(rect: {
        height: number;
        width: number;
    }): void;
};
export type State = ReturnType<typeof createState>;
//# sourceMappingURL=state.d.ts.map