import { Placement, ReferenceElement } from '@floating-ui/dom';
import { StyleValue } from 'vue';
import { ButtonProps, ButtonType } from '../../button/src/button.js';
import { TooltipEffect, TooltipPopperOptions } from '../../tooltip/index.js';
export type PopconfirmEffect = TooltipEffect;
export type PopconfirmButtonType = ButtonType | "text";
export type PopconfirmAction = "confirm" | "cancel";
export type PopconfirmModelValueChangeHandler = (value: boolean) => void;
export type PopconfirmActionHandler = (event: MouseEvent) => void;
export interface PopconfirmActionContext {
    action: PopconfirmAction;
    event: MouseEvent;
    close: () => void;
    hide: () => void;
}
export interface PopconfirmSlotProps {
    confirm: (event: MouseEvent) => Promise<void>;
    cancel: (event: MouseEvent) => Promise<void>;
    close: () => void;
    confirming: boolean;
    cancelling: boolean;
}
export type PopconfirmHook = (ctx: PopconfirmActionContext) => boolean | void | Promise<boolean | void>;
export interface PopconfirmProps {
    modelValue?: boolean;
    title?: string;
    content?: string;
    placement?: Placement;
    disabled?: boolean;
    width?: string | number;
    openDelay?: number;
    closeDelay?: number;
    showAfter?: number;
    hideAfter?: number;
    effect?: PopconfirmEffect;
    teleported?: boolean;
    appendTo?: string | HTMLElement;
    persistent?: boolean;
    offset?: number;
    triggerKeys?: string[];
    showArrow?: boolean;
    closeOnEsc?: boolean;
    closeOnOutside?: boolean;
    popperClass?: string;
    popperStyle?: StyleValue;
    transition?: string;
    popperOptions?: TooltipPopperOptions;
    icon?: string;
    iconColor?: string;
    hideIcon?: boolean;
    confirmButtonText?: string;
    cancelButtonText?: string;
    confirmButtonType?: PopconfirmButtonType;
    cancelButtonType?: PopconfirmButtonType;
    confirmButtonProps?: Partial<ButtonProps>;
    cancelButtonProps?: Partial<ButtonProps>;
    beforeConfirm?: PopconfirmHook;
    beforeCancel?: PopconfirmHook;
    virtualRef?: ReferenceElement | null;
    virtualTriggering?: boolean;
}
export type PopconfirmInstance = any;
