import { type InjectionKey, type ShallowRef, type Slots } from "vue";
import { type TableProps, type RequiredTableProps, type TableEmit } from "./typing";
import type { UseTableReturn } from "./hooks/useTable";
import type { UseTableSelectedReturn } from "./hooks/useTableSelected";
import type { UseTableExpandReturn } from "./hooks/useTableExpand";
import { UseTableColumnsReturn } from "./hooks/useTableColumns";
export declare const columnsTypeList: string[];
interface LayTableContextType {
    tableEmits: TableEmit;
    tableProps: RequiredTableProps;
    tableSlots: Slots;
    tableRef: ShallowRef<HTMLDivElement | null>;
    tableBodyTableRef: ShallowRef<HTMLElement | null>;
    tableHeaderRef: ShallowRef<HTMLDivElement | null>;
    tableHeaderTableRef: ShallowRef<HTMLElement | null>;
    tableTotalRef: ShallowRef<HTMLDivElement | null>;
    tableTotalTableRef: ShallowRef<HTMLElement | null>;
    tableDataSource: TableProps["dataSource"];
    columnsState: UseTableColumnsReturn;
    selectedState: UseTableSelectedReturn;
    expandState: UseTableExpandReturn;
    commonGetClasses: UseTableReturn["commonGetClasses"];
    commonGetStylees: UseTableReturn["commonGetStylees"];
}
export declare const LAY_TABLE_CONTEXT: InjectionKey<LayTableContextType>;
export {};
