import { COLOR, POPOVER_PLACEMENT, POPOVER_STRATEGY, TRIGGER } from "./Popover.constants";
export type ValueOf<T> = T[keyof T];
type PopoverPlacement = ValueOf<typeof POPOVER_PLACEMENT>;
type PopoverColor = ValueOf<typeof COLOR>;
type PopoverTrigger = ValueOf<typeof TRIGGER> | `${ValueOf<typeof TRIGGER>} ${ValueOf<typeof TRIGGER>}`;
type PopoverStrategy = ValueOf<typeof POPOVER_STRATEGY>;
export declare const Placement: readonly ["auto", "auto-start", "auto-end", "left-start", "left", "left-end", "right-start", "right", "right-end", "top-start", "top", "top-end", "bottom-start", "bottom", "bottom-end"];
interface Events {
    onShownEvent: Event;
    onHiddenEvent: Event;
    onCreatedEvent: Event;
    onDestroyedEvent: Event;
}
interface IPopoverController {
    show: (useDelay?: boolean) => void;
    hide: () => void;
    toggle: () => void;
    isVisible: () => boolean;
}
export declare const Strategy: readonly ["fixed", "absolute"];
export declare const PopoverRole: readonly ["dialog", "menu", "tooltip"];
export declare const Triggers: readonly ["click", "mouseenter", "manual"];
export type PlacementType = (typeof Placement)[number];
export type StrategyType = (typeof Strategy)[number];
export type PopoverRoleType = (typeof PopoverRole)[number];
export type { Events, IPopoverController, PopoverColor, PopoverPlacement, PopoverStrategy, PopoverTrigger };
