import { IDelayProps } from '../../../composable';
import { ComponentPublicInstance, PropType, Ref, ComputedRef } from 'vue';
export interface IActivatorProps extends IDelayProps {
    activator: 'parent' | string | Element | ComponentPublicInstance;
    activatorProps: Record<string, any>;
    target: 'parent' | 'cursor' | (string & {}) | Element | ComponentPublicInstance | [x: number, y: number] | undefined;
    openOnClick: boolean | undefined;
    openOnHover: boolean;
    openOnFocus: boolean | undefined;
    closeOnContentClick: boolean;
}
export interface IUseActivator {
    activatorEl: Ref<HTMLElement | undefined>;
    activatorRef: Ref<HTMLElement | undefined>;
    target: ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
    targetEl: ComputedRef<HTMLElement | undefined>;
    targetRef: Ref<HTMLElement | undefined>;
    activatorEvents: ComputedRef<Partial<TAvailableEvents>>;
    contentEvents: ComputedRef<Partial<TAvailableEvents>>;
    scrimEvents: ComputedRef<Partial<TAvailableEvents>>;
}
type TAvailableEvents = {
    onClick: (event: MouseEvent) => void;
    onMouseenter: (event: MouseEvent) => void;
    onMouseleave: (event: MouseEvent) => void;
    onFocus: (event: FocusEvent) => void;
    onBlur: (event: FocusEvent) => void;
};
export declare const makeActivatorProps: <Defaults extends {
    activator?: unknown;
    activatorProps?: unknown;
    target?: unknown;
    openOnClick?: unknown;
    openOnHover?: unknown;
    openOnFocus?: unknown;
    closeOnContentClick?: unknown;
} = {}>(defaults?: Defaults | undefined) => import('../../../utils').AppendDefault<{
    /**
     * Элемент, который будет активировать компонент
     */
    activator: {
        type: PropType<"parent" | string | Element | ComponentPublicInstance>;
        default: null;
    };
    /**
     * Свойства для элемента активатора
     */
    activatorProps: {
        type: PropType<Record<string, any>>;
        default: () => {};
    };
    /**
     * Для locationStrategy="connected" укажите элемент или массив координат x,y, относительно которого должен позиционироваться оверлей.
     * По умолчанию это будет элемент активатора.
     */
    target: {
        type: PropType<"parent" | "cursor" | (string & {}) | Element | ComponentPublicInstance | [x: number, y: number] | undefined>;
        default: undefined;
    };
    /**
     * Показать компонент по клику на активатор
     */
    openOnClick: {
        type: PropType<boolean | undefined>;
        default: undefined;
    };
    /**
     * Показать компонент по наведению на активатор
     */
    openOnHover: {
        type: PropType<boolean>;
        default: boolean;
    };
    /**
     * Показать компонент по фокусу на активатор
     */
    openOnFocus: {
        type: PropType<boolean | undefined>;
        default: undefined;
    };
    /**
     * Скрыть компонент по клику на контент
     */
    closeOnContentClick: {
        type: PropType<boolean>;
        default: boolean;
    };
}, Defaults>;
export declare function useActivator(props: IActivatorProps, { isActive, isTop }: {
    isActive: Ref<boolean>;
    isTop: Ref<boolean>;
}): IUseActivator;
export {};
