export interface Props {
  title: string
  
  modelValue?: boolean
  
  width?: string | number
  
  height?: string | number
  
  beforeConfirm?: any
  
  options: ModelTableProps
  
  submitOptions?: submitOptions
}
export interface Emits extends ModelTableEmits {
  (e: 'confirm', data: any): void
  (e: 'close'): void
  (e: 'open'): void
  (e: 'update:modelValue', bool: boolean): void
}
export interface ModelTableProps {
  left?: left
  content?: content
  right?: boolean
  splitPanelProps?: any
}
export interface ModelTableEmits {
  (e: 'treeChange', data: any): void
  (e: 'tableChange', data: any): void
  (e: 'update:resultTree', data: any): void 
  (e: 'update:resultTable', data: any): void
}
export interface submitOptions extends HttpOptions {
  successText?: string
}
export interface left extends commonOptions {
  
  vNodeName?: string
  
  grandChildren?: HttpOptions
  
  disabledSort?: boolean
}
export interface content extends commonOptions {
  
  searchKeyDataFormat?: string
  
  columns?: any[]
  
  selectAll?: boolea
}
interface commonOptions extends HttpOptions {
  
  multiple?: boolean
  
  props?: any
  
  selectListProps?: Record<boolean, any>
  
  handleData?: (data: any) => any
  
  handleParams?: (data: any) => any
}
interface HttpOptions {
  api?: any
  
  params?: any
  
  query?: any
  
  searchKey?: string
}
