import type { TableProps, TableColumnCtx } from 'element-plus'; export interface Action { actionType: string; actionName: string; perm?: string | Array; icon?: string; color?: 'primary' | 'success' | 'info' | 'warning' | 'danger'; hidden?: (row: T) => boolean; formatter?: (row: T) => string; effect?: 'one' | 'more'; } export interface TableEmits { select: (selection: T[], row: T) => void; selectAll: (selection: T[]) => void; selectionChange: (selection: T[]) => void; cellMouseEnter: (row: T, column: TableColumnCtx, cell: any, event: Event) => void; cellMouseLeave: (row: T, column: TableColumnCtx, cell: any, event: Event) => void; cellClick: (row: T, column: TableColumnCtx, cell: any, event: Event) => void; cellDblclick: (row: T, column: TableColumnCtx, cell: any, event: Event) => void; cellContextmenu: (row: T, column: TableColumnCtx, cell: any, event: Event) => void; rowClick: (row: T, column: TableColumnCtx, event: Event) => void; rowContextmenu: (row: T, column: TableColumnCtx, event: Event) => void; rowDblclick: (row: T, column: TableColumnCtx, event: Event) => void; headerClick: (column: TableColumnCtx, event: Event) => void; headerContextmenu: (column: TableColumnCtx, event: Event) => void; sortChange: (sortData: { column: TableColumnCtx; prop: string; order: string; }) => void; filterChange: (filterData: { filters: any[]; columnKey: string; }) => void; currentChange: (currentrow: T, oldCurrentrow: T) => void; headerDragend: (dragData: { newWidth: number; oldWidth: number; column: any; event: Event; }) => void; expandChange: (row: T, expandedRows: any[] | boolean) => void; } export declare type Column = TableColumnCtx & { hidden: boolean; tag: boolean; }; export interface AdTablePorps { modelValue?: Record; headerAction?: Array>; columnAction?: Array>; columnActionLabel?: string; columnActionWidth?: number | string; actionClick?: (action: Action, rows: Array) => void; table?: Partial>; events?: Partial>; columns?: Array>>; doubleClickPickOn?: boolean; handleTableHeaderClick?: (key: string, column: Partial>) => void; handleTableRowClick?: (key: string, row: T, rowIndex: number) => void; isAutoLoadable?: boolean; api: (queryForm?: Record) => Promise; exportExcelApi?: (queryForm?: Record) => void; reqHandler?: (queryForm?: M) => M; respHandler?: (data?: Record) => Record; toolbarSearchText?: string; toolbarSearchHiddenText?: string; toolbarDownloadText?: string; toolbarRefreshText?: string; toolbarColumnsText?: string; toolbarSortText?: string; toolbarDownloadPerm?: Array | string; isToolbarDownload?: boolean; isToolbarColumns?: boolean; isToolbarSort?: boolean; isToolbar?: boolean; isPaging?: boolean; pageSize?: number; pageSizes?: Array; } export interface AdTableEmits { } export interface AdTableInstance { fetchData: (params?: { isResetPageNumber: boolean; }) => Promise; list: Array; }