import type { ISharedRenderlessFunctionParams, ISharedRenderlessParamUtils } from './shared.type'
import type { ICascaderPanelNode, ICascaderPanelApi } from './cascader-panel.type'
import type { clearHoverZone, handleExpand, handleMouseMove } from '../src/cascader-menu'
export interface ICascaderMenuProps {
nodes: ICascaderPanelNode[]
index: number
}
export interface ICascaderMenuState {
activeNode: null | HTMLElement
hoverTimer: null | NodeJS.Timeout
id: number
isEmpty: boolean
menuId: string
}
export interface ICascaderMenuApi {
state: ICascaderMenuState
clearHoverZone: ReturnType<typeof clearHoverZone>
handleExpand: ReturnType<typeof handleExpand>
handleMouseMove: ReturnType<typeof handleMouseMove>
}
export type ICascaderMenuRenderlessParams = ISharedRenderlessFunctionParams<never> & {
state: ICascaderMenuState
props: ICascaderMenuProps
api: ICascaderMenuApi
panel: ICascaderPanelApi
}
export type ICascaderMenuRenderlessParamUtils = ISharedRenderlessParamUtils<never>