import { ExtractPropTypes, ComponentPublicInstance } from 'vue'; import { ISharedRenderlessFunctionParams, ISharedRenderlessParamUtils } from '../../../shared.type'; import { IDropdownItemVm } from '../../dropdown-item/src/dropdown-item'; export declare const dropdownMenuProps: { multiStage: { type: BooleanConstructor; default: boolean; }; checkedStatus: { type: BooleanConstructor; default: boolean; }; visibleArrow: BooleanConstructor; arrowOffset: { type: NumberConstructor; default: number; }; placement: StringConstructor; popperClass: StringConstructor; popperAppendToBody: { type: BooleanConstructor; default: boolean; }; activeColor: StringConstructor; closeOnClickOutside: { type: BooleanConstructor; default: boolean; }; closeOnClickOverlay: { type: BooleanConstructor; default: boolean; }; direction: { type: StringConstructor; default: string; }; duration: { type: (NumberConstructor | StringConstructor)[]; default: number; }; overlay: { type: BooleanConstructor; default: boolean; }; zIndex: (NumberConstructor | StringConstructor)[]; maxHeight: { type: (NumberConstructor | StringConstructor)[]; default: string; }; options: { type: ArrayConstructor; default: () => never[]; }; textField: { type: StringConstructor; default: string; }; }; export type { IDropdownItemVm }; export type IDropdownMenuProps = ExtractPropTypes; export interface IDropdownMenuState { offset: number; scroller: null | HTMLElement; children: IDropdownItemVm[]; size: string; showPopper: boolean; label: string; showContent: boolean; selected: boolean; selectedIndex: number; } export interface IDropdownMenuApi { state: IDropdownMenuState; toggleItem: (active: boolean, item: any) => void; clickOutside: () => void; updateOffset: () => void; mounted: () => void; handleMouseenter: ($event: MouseEvent) => void; handleMouseleave: ($event: MouseEvent) => void; handleMenuItemClick: (itemData: object, instance: ComponentPublicInstance, label: string, showContent: boolean, isDisabled: boolean) => void; doDestroy: () => void; } export type IDropdownMenuRenderlessParams = ISharedRenderlessFunctionParams & { state: IDropdownMenuState; props: IDropdownMenuProps; api: IDropdownMenuApi; }; export type IDropdownMenuRenderlessParamUtils = ISharedRenderlessParamUtils; export interface IDropdownMenuPopperParams { api: IDropdownMenuApi; props: IDropdownMenuProps; hooks: Pick; instance: IDropdownMenuRenderlessParamUtils; state: IDropdownMenuState; dropdownVm: any; } export type IDropdownMenuVm = ComponentPublicInstance & { state: IDropdownMenuState; } & IDropdownMenuProps;