import { Table, TableColumn, TableExpose, TableProps, TableSetProps } from '../index'; import { type Ref } from 'vue'; import { Recordable } from '../../../types'; interface FetchDataResult { list: T[]; total?: number; } export interface UseTableConfig { immediate?: boolean; fetchDataApi: () => Promise>; fetchDelApi?: () => Promise; } export interface TableState { currentPage: Ref; pageSize: Ref; total: Ref; dataList: Ref; loading: Ref; } export interface TableMethods { getList: () => Promise; setProps: (props: TableProps) => Promise; setColumn: (columnProps: TableSetProps[]) => Promise; addColumn: (tableColumn: TableColumn, index?: number) => Promise; delColumn: (field: string) => Promise; getElTableExpose: () => Promise; refresh: () => void; delList: (idsLength: number) => Promise; } export interface UseTableReturn { tableRegister: (ref: typeof Table & TableExpose, elRef: any) => void; tableMethods: TableMethods; tableState: TableState; } export declare const useTable: (config: UseTableConfig) => UseTableReturn; export {};