import type { ExtractPropTypes, Ref } from 'vue'
import type { fallMenuProps } from '@/fall-menu/src'
import type {
mouseover,
mouseout,
computePx,
reRender,
arrowClick,
overContent,
mounted,
beforeDestroy,
computeLeft,
computeData
} from '../src/fall-menu'
export interface IPagerData {
data: IFallMenuProps['data']
offset: string[]
index: number[]
size?: number
}
export interface IFallMenuState {
pager: number
active: number
level2data: IFallMenuProps['data']
activeNode: null
isActive: boolean
pagerData: IPagerData
left: any
data: IFallMenuProps['data']
}
export type IFallMenuProps = ExtractPropTypes<typeof fallMenuProps> & { value: boolean }
export interface IFallMenuApi {
fall: Ref<null>
state: IFallMenuState
computePx: ReturnType<typeof computePx>
mounted: ReturnType<typeof mounted>
computeLeft: ReturnType<typeof computeLeft>
beforeDestroy: ReturnType<typeof beforeDestroy>
computeData: ReturnType<typeof computeData>
arrowClick: ReturnType<typeof arrowClick>
overContent: ReturnType<typeof overContent>
mouseout: ReturnType<typeof mouseout>
mouseover: ReturnType<typeof mouseover>
reRender: ReturnType<typeof reRender>
}