import type { Ref, RenderFunction, SetupContext } from 'vue' import type { VxeColumnSlots } from 'vxe-table/types' import type { RowData, TablePaginationConfig, TreeTransferData, TreeTransferProps } from '../base' import type { ComponentBaseOptions, ComponentSlotType, DefineComponentApp, DefineComponentInstance } from '../common' export declare const KTreeTransfer: DefineComponentApp export type KTreeTransferInstance = DefineComponentInstance export interface KTreeTransferConstructor extends ComponentBaseOptions, KTreeTransferMethods { props: KTreeTransferProps context: SetupContext getRefMaps(): KTreeTransferPrivateRef getComputeMaps(): KTreeTransferPrivateComputed renderVN: RenderFunction } export interface KTreeTransferPrivateRef { refElem: Ref } export interface KTreeTransferPrivateComputed { } export type TreeTransferPageDirection = 'left' | 'right' export type TreeTransferKey = string | number export type KTreeTransferProps = TreeTransferProps export type KTreeTransferEmits = { updateModelValue: (data: (string | number)[]) => void change: (data: TreeTransferData[]) => void drag: (data: TreeTransferData[]) => void remoteQuery: (query: string) => void serverPaging: (pageConfig: TablePaginationConfig & { position: TreeTransferPageDirection }) => void pageCurrentChange: (current: number, position: TreeTransferPageDirection) => void pageSizeChange: (size: number, position: TreeTransferPageDirection) => void pageChange: (page: number, size: number, position: TreeTransferPageDirection) => void pagePrevClick: (pageNum: number, position: TreeTransferPageDirection) => void pageNextClick: (pageNum: number, position: TreeTransferPageDirection) => void } export interface KTreeTransferSlots { empty: (_: { query: string }) => ComponentSlotType 'left-cell': () => VxeColumnSlots['default'] 'right-header': VxeColumnSlots['header'] 'right-cell': () => VxeColumnSlots['default'] 'right-label': () => ComponentSlotType /** * 已废弃,请使用 right-header * * @deprecated */ rightHeader: VxeColumnSlots['header'] /** * 已废弃,请使用 right-cell * * @deprecated */ rightCell: () => VxeColumnSlots['default'] /** * 已废弃,请使用 right-label * * @deprecated */ rightLabel: () => ComponentSlotType } export type KTreeTransferMethods = { clearData: (deep?: boolean) => void clearQuery: (position: TreeTransferPageDirection | undefined) => void getQuery: () => string | string[] setAllCheckboxRow: (checked: boolean) => Promise setCheckboxRow: (row: RowData | RowData[], checked: boolean) => Promise clearCheckboxRow: () => Promise clearCheckboxReserve: () => Promise getCheckboxRecords: (isFull?: boolean) => RowData[] isCheckedRow: (row: RowData | TreeTransferKey) => boolean }