import { Placement, ReferenceElement, Strategy } from '@floating-ui/dom';
import { StyleValue } from 'vue';
import { ButtonProps } from '../../button/src/button.js';
export declare const dropdownRoles: readonly ["menu", "navigation"];
export declare const dropdownTriggers: readonly ["hover", "click", "contextmenu"];
export type DropdownRole = (typeof dropdownRoles)[number];
export type DropdownTrigger = (typeof dropdownTriggers)[number];
export type DropdownCommand = string | number | Record<string, unknown>;
export interface DropdownItem {
    key: string;
    label: string;
    disabled?: boolean;
    danger?: boolean;
    description?: string;
    command?: DropdownCommand;
    divided?: boolean;
    icon?: string;
    textValue?: string;
}
export interface DropdownPopperOptions {
    offset?: number;
    strategy?: Strategy;
    arrowPadding?: number;
    matchTriggerWidth?: boolean;
    shiftPadding?: number;
    flip?: boolean;
}
export interface DropdownSelectItem {
    command?: DropdownCommand;
    disabled?: boolean;
    divided?: boolean;
    icon?: string;
    danger?: boolean;
    description?: string;
    textValue?: string;
}
export type DropdownModelValueChangeHandler = (value: boolean) => void;
export type DropdownSelectHandler = (item: DropdownSelectItem | DropdownItem) => void;
export type DropdownCommandHandler = (command: DropdownCommand | string | undefined, item: DropdownSelectItem | DropdownItem) => void;
export type DropdownVisibleChangeHandler = (value: boolean) => void;
export type DropdownClickHandler = (event: MouseEvent) => void;
export interface DropdownProps {
    modelValue?: boolean;
    items?: DropdownItem[];
    placement?: Placement;
    disabled?: boolean;
    hideOnClick?: boolean;
    closeOnSelect?: boolean;
    role?: DropdownRole;
    trigger?: DropdownTrigger | DropdownTrigger[];
    triggerKeys?: string[];
    openDelay?: number;
    closeDelay?: number;
    showAfter?: number;
    hideAfter?: number;
    maxHeight?: string | number;
    teleported?: boolean;
    appendTo?: string | HTMLElement;
    persistent?: boolean;
    popperClass?: string;
    popperStyle?: StyleValue;
    showArrow?: boolean;
    virtualRef?: ReferenceElement | null;
    virtualTriggering?: boolean;
    splitButton?: boolean;
    buttonProps?: Partial<ButtonProps>;
    tabindex?: string | number;
    loop?: boolean;
    popperOptions?: DropdownPopperOptions;
}
