import type { Ref, RenderFunction, SetupContext } from 'vue' import type { NodeDropType, TreeNodeData } from 'element-plus/es/components/tree/src/tree.type' import type { ViewData, ViewProps } from '../base' import type { ComponentBaseOptions, ComponentSlotType, DefineComponentApp, DefineComponentInstance } from '../common' export declare const KView: DefineComponentApp export type KViewInstance = DefineComponentInstance export interface KViewConstructor extends ComponentBaseOptions, KViewMethods { props: KViewProps context: SetupContext getRefMaps(): KViewPrivateRef getComputeMaps(): KViewPrivateComputed renderVN: RenderFunction } export interface KViewPrivateRef { refElem: Ref } export interface KViewPrivateComputed { } export type KViewProps = ViewProps export type KViewEmits = { refresh: () => void change: (changeInfo: { value: string | number; data: ViewData; node?: TreeNodeData }) => void remove: (removeInfo: { value: string | number; data: ViewData }) => void drag: (dragData: { targetNode: any; lastOverNode: any; position: NodeDropType }) => void visible: (isVisible: boolean) => void nodeExpand: (data: ViewData, node: TreeNodeData) => void nodeCollapse: (data: ViewData, node: TreeNodeData) => void } export interface KViewSlots { default: () => ComponentSlotType header: () => ComponentSlotType refresh: () => ComponentSlotType label: (_: ViewData) => ComponentSlotType 'custom-header': () => ComponentSlotType [key: string]: () => ComponentSlotType } export type KViewMethods = { expand: () => void collapse: () => void toggle: () => void isExpand: () => void isCollapse: () => void getCurrentView: () => string | number }