import { InjectionKey, ComputedRef } from 'vue';
import { TableSettings } from './types';
import { State } from './state';
export declare const settingsKey: InjectionKey<ComputedRef<TableSettings>>;
export declare const stateKey: InjectionKey<State>;
export declare const injectState: () => {
    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: import('./types').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<import('./types').PrimaryKey> & Omit<Set<import('./types').PrimaryKey>, keyof Set<any>>;
        selectedColumns: Set<string> & Omit<Set<string>, keyof Set<any>>;
        error?: unknown;
    };
    settings: ComputedRef<Readonly<{
        columns: import('./types').ColumnSpecSettings<string, unknown>[];
        dataSource: import('./types').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: import('./types').Row<import('./types').DataRow>) => void) | undefined;
    }>>;
    tableColumns: ComputedRef<import('./types').TableColumn[]>;
    tableRows: ComputedRef<import('./types').TableRow[]>;
    adjustWidth: () => void;
    updateOffsets(ev: {
        deltaY: number;
        deltaX: number;
    }): void;
    getSelectedRows(): import('./types').Row[];
    getSelectedColumns(): import('./types').ColumnSpecSettings[];
    selectRow(rowId: import('./types').PrimaryKey): void;
    unselectRow(rowId: import('./types').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;
};
