import type { FormInstance, TableInstance, FormItemProp } from 'element-plus'; import { type Ref } from 'vue'; import type { TableColumn, TableProps, TableScope } from './table'; import type { ButtonProps } from 'el-plus/es/components/buttons'; export type ISearch = (init: boolean, isPagination?: boolean) => void; export declare const useTable: (props: TableProps) => { loading: Ref | undefined; data: Ref[], Record[]>; search: ISearch; pagination: { total: number; pageNo: number; pageSize: number; }; paginationProps: import("vue").ComputedRef<{ pageSizes: number[]; onSizeChange: (value: number) => void; onCurrentChange: (value: number) => void; small?: boolean | undefined; background?: boolean | undefined; disabled?: boolean | undefined; teleported?: import("element-plus/es/utils").EpPropMergeType | undefined; popperClass?: string | undefined; pagerCount?: number | undefined; layout: string; prevText?: string | undefined; nextText?: string | undefined; hideOnSinglePage?: boolean | undefined; size?: import("element-plus/es/utils").EpPropMergeType | undefined; popperStyle?: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | import("vue").CSSProperties) | (() => string | import("vue").CSSProperties) | ((new (...args: any[]) => string | import("vue").CSSProperties) | (() => string | import("vue").CSSProperties))[], unknown, unknown> | undefined; pageSize?: number | undefined; defaultPageSize?: number | undefined; total?: number | undefined; pageCount?: number | undefined; currentPage?: number | undefined; defaultCurrentPage?: number | undefined; prevIcon?: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown> | undefined; nextIcon?: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown> | undefined; appendSizeTo?: string | undefined; "onUpdate:currentPage"?: ((val: number) => boolean) | undefined; "onUpdate:pageSize"?: ((val: number) => boolean) | undefined; onChange?: ((currentPage: number, pageSize: number) => boolean) | undefined; onPrevClick?: ((val: number) => boolean) | undefined; onNextClick?: ((val: number) => boolean) | undefined; }>; validate: () => import("element-plus").FormValidationResult; clearSelection: () => void; resetFields: (props: FormItemProp) => void; clearValidate: (props: FormItemProp) => void; getSelectionRows: () => any[]; elFormRef: Readonly>; elTableRef: Readonly>; formatActionButtons: (list: ButtonProps[], scope: TableScope) => Partial & { name: string; prop: string; permission: string; onClick: (e: MouseEvent | TableScope) => void; scopedSlots: Record import("vue").VNode>; disabled: import("el-plus/es/utils").IDisabled; confirm: boolean; confirmText: string; confirmBefore: (e: MouseEvent | TableScope) => Promise; } & {} & { show?: (boolean | ((T: unknown) => boolean)) | undefined; hide?: (boolean | ((T: unknown) => boolean)) | undefined; }>[]; customColumns: Ref; }; export declare const useTableColumn: (props: TableProps, tableData: Ref, customColumns: Ref) => { columnList: import("vue").ComputedRef<{ [x: string]: any; id?: string | undefined; realWidth?: number | null | undefined; type?: string | undefined; label?: string | undefined; className?: string | undefined; labelClassName?: string | undefined; property?: string | undefined; prop?: string | undefined; width?: string | number; minWidth?: string | number | undefined; renderHeader?: ((data: { column: import("element-plus").TableColumnCtx; $index: number; store: import("element-plus/es/components/table/src/store").Store; _self: any; }) => import("vue").VNode) | undefined; sortable?: string | boolean | undefined; sortMethod?: ((a: import("element-plus/es/components/table/src/table/defaults").DefaultRow, b: import("element-plus/es/components/table/src/table/defaults").DefaultRow) => number) | undefined; sortBy?: string | string[] | ((row: import("element-plus/es/components/table/src/table/defaults").DefaultRow, index: number, array?: import("element-plus/es/components/table/src/table/defaults").DefaultRow[] | undefined) => string) | undefined; resizable?: boolean | undefined; columnKey?: string | undefined; rawColumnKey?: string | undefined; align?: string | undefined; headerAlign?: string | undefined; showOverflowTooltip?: boolean | import("element-plus/es/components/table/src/util").TableOverflowTooltipOptions; tooltipFormatter?: import("element-plus/es/components/table/src/util").TableOverflowTooltipFormatter | undefined; fixed?: string | boolean | undefined; formatter?: ((row: import("element-plus/es/components/table/src/table/defaults").DefaultRow, column: import("element-plus").TableColumnCtx, cellValue: any, index: number) => import("vue").VNode | string) | undefined; selectable?: ((row: import("element-plus/es/components/table/src/table/defaults").DefaultRow, index: number) => boolean) | undefined; reserveSelection?: boolean | undefined; filterMethod?: import("element-plus/es/components/table/src/table-column/defaults").FilterMethods | undefined; filteredValue?: string[] | undefined; filters?: import("element-plus/es/components/table/src/table-column/defaults").Filters | undefined; filterPlacement?: string | undefined; filterMultiple?: boolean | undefined; filterClassName?: string | undefined; index?: number | ((index: number) => number) | undefined; sortOrders?: (import("element-plus/es/components/table/src/table/defaults").TableSortOrder | null)[] | undefined; renderCell?: ((data: any) => import("vue").VNode | import("vue").VNode[]) | undefined; colSpan?: number | undefined; rowSpan?: number | undefined; children?: import("element-plus").TableColumnCtx[] | undefined; level?: number | undefined; filterable?: boolean | import("element-plus/es/components/table/src/table-column/defaults").FilterMethods | import("element-plus/es/components/table/src/table-column/defaults").Filters | undefined; order?: import("element-plus/es/components/table/src/table/defaults").TableSortOrder | null | undefined; isColumnGroup?: boolean | undefined; isSubColumn?: boolean | undefined; columns?: import("element-plus").TableColumnCtx[] | undefined; getColumnIndex?: (() => number) | undefined; no?: number | undefined; filterOpened?: boolean; renderFilterIcon?: (scope: any) => import("vue").VNode; renderExpand?: (scope: any) => import("vue").VNode; required?: boolean | (() => boolean) | undefined; cellRequired?: ((scope: TableScope) => boolean) | undefined; headerRender?: ((data: { column: import("element-plus").TableColumnCtx; $index: number; store: import("element-plus/es/components/table/src/store").Store; _self: any; }) => import("vue").VNode) | undefined; disabled?: boolean | ((scope: TableScope) => boolean) | undefined; props?: Record | undefined; filter?: boolean | undefined; editable?: boolean | ((formData: Record) => void) | undefined; show?: (boolean | ((T: unknown) => boolean)) | undefined; hide?: (boolean | ((T: unknown) => boolean)) | undefined; }[]>; }; export declare const useTableFormItem: (props: TableProps) => { formItemProps: (scope: TableScope, rawItem: TableColumn) => { isShowLabel: boolean; required: boolean | undefined; hideRequiredAsterisk: boolean | undefined; prop: string; tableProp: string | undefined; props: { disabled: boolean | undefined; }; id?: string | undefined; realWidth?: number | null | undefined; type?: string | undefined; label?: string | undefined; className?: string | undefined; labelClassName?: string | undefined; property?: string | undefined; width?: string | number | undefined; minWidth?: string | number | undefined; renderHeader?: ((data: { column: import("element-plus").TableColumnCtx; $index: number; store: import("element-plus/es/components/table/src/store").Store; _self: any; }) => import("vue").VNode) | undefined; sortable?: string | boolean | undefined; sortMethod?: ((a: import("element-plus/es/components/table/src/table/defaults").DefaultRow, b: import("element-plus/es/components/table/src/table/defaults").DefaultRow) => number) | undefined; sortBy?: string | string[] | ((row: import("element-plus/es/components/table/src/table/defaults").DefaultRow, index: number, array?: import("element-plus/es/components/table/src/table/defaults").DefaultRow[] | undefined) => string) | undefined; resizable?: boolean | undefined; columnKey?: string | undefined; rawColumnKey?: string | undefined; align?: string | undefined; headerAlign?: string | undefined; showOverflowTooltip?: (boolean | import("element-plus/es/components/table/src/util").TableOverflowTooltipOptions) | undefined; tooltipFormatter?: import("element-plus/es/components/table/src/util").TableOverflowTooltipFormatter | undefined; fixed?: string | boolean | undefined; formatter?: ((row: import("element-plus/es/components/table/src/table/defaults").DefaultRow, column: import("element-plus").TableColumnCtx, cellValue: any, index: number) => import("vue").VNode | string) | undefined; selectable?: ((row: import("element-plus/es/components/table/src/table/defaults").DefaultRow, index: number) => boolean) | undefined; reserveSelection?: boolean | undefined; filterMethod?: import("element-plus/es/components/table/src/table-column/defaults").FilterMethods | undefined; filteredValue?: string[] | undefined; filters?: import("element-plus/es/components/table/src/table-column/defaults").Filters | undefined; filterPlacement?: string | undefined; filterMultiple?: boolean | undefined; filterClassName?: string | undefined; index?: number | ((index: number) => number) | undefined; sortOrders?: (import("element-plus/es/components/table/src/table/defaults").TableSortOrder | null)[] | undefined; renderCell?: ((data: any) => import("vue").VNode | import("vue").VNode[]) | undefined; colSpan?: number | undefined; rowSpan?: number | undefined; children?: import("element-plus").TableColumnCtx[] | undefined; level?: number | undefined; filterable?: boolean | import("element-plus/es/components/table/src/table-column/defaults").FilterMethods | import("element-plus/es/components/table/src/table-column/defaults").Filters | undefined; order?: import("element-plus/es/components/table/src/table/defaults").TableSortOrder | null | undefined; isColumnGroup?: boolean | undefined; isSubColumn?: boolean | undefined; columns?: import("element-plus").TableColumnCtx[] | undefined; getColumnIndex?: (() => number) | undefined; no?: number | undefined; filterOpened?: boolean | undefined; renderFilterIcon?: ((scope: any) => import("vue").VNode) | undefined; renderExpand?: ((scope: any) => import("vue").VNode) | undefined; cellRequired?: ((scope: TableScope) => boolean) | undefined; headerRender?: ((data: { column: import("element-plus").TableColumnCtx; $index: number; store: import("element-plus/es/components/table/src/store").Store; _self: any; }) => import("vue").VNode) | undefined; disabled?: boolean | ((scope: TableScope) => boolean) | undefined; filter?: boolean | undefined; editable?: boolean | ((formData: Record) => void) | undefined; show?: (boolean | ((T: unknown) => boolean)) | undefined; hide?: (boolean | ((T: unknown) => boolean)) | undefined; }; };