import { DefineComponent, ExtractPropTypes, PropType, CSSProperties, ShallowRef, ComputedRef, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { VueTypeDef, VueTypeValidableDef } from 'vue-types';
import { AlignType } from './interface';
declare const _default: DefineComponent<ExtractPropTypes<{
    action: VueTypeDef<string | string[]> & {
        default: string | (() => string[]);
    };
    showAction: VueTypeValidableDef<any> & {
        default: any;
    };
    hideAction: VueTypeValidableDef<any> & {
        default: any;
    };
    getPopupClassNameFromAlign: VueTypeValidableDef<any> & {
        default: any;
    };
    onPopupVisibleChange: PropType<(open: boolean) => void>;
    afterPopupVisibleChange: VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    } & {
        default: (...args: any[]) => any;
    };
    popup: VueTypeValidableDef<any>;
    arrow: VueTypeValidableDef<boolean> & {
        default: boolean;
    } & {
        default: boolean;
    };
    popupStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    prefixCls: VueTypeValidableDef<string> & {
        default: string;
    } & {
        default: string;
    };
    popupClassName: VueTypeValidableDef<string> & {
        default: string;
    } & {
        default: string;
    };
    popupPlacement: StringConstructor;
    builtinPlacements: VueTypeValidableDef<{
        [key: string]: any;
    }> & {
        default: () => {
            [key: string]: any;
        };
    };
    popupTransitionName: StringConstructor;
    popupAnimation: VueTypeValidableDef<any>;
    mouseEnterDelay: VueTypeValidableDef<number> & {
        default: number;
    } & {
        default: number;
    };
    mouseLeaveDelay: VueTypeValidableDef<number> & {
        default: number;
    } & {
        default: number;
    };
    zIndex: NumberConstructor;
    focusDelay: VueTypeValidableDef<number> & {
        default: number;
    } & {
        default: number;
    };
    blurDelay: VueTypeValidableDef<number> & {
        default: number;
    } & {
        default: number;
    };
    getPopupContainer: FunctionConstructor;
    getDocument: VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    } & {
        default: (...args: any[]) => any;
    };
    forceRender: {
        type: BooleanConstructor;
        default: undefined;
    };
    destroyPopupOnHide: {
        type: BooleanConstructor;
        default: boolean;
    };
    mask: {
        type: BooleanConstructor;
        default: boolean;
    };
    maskClosable: {
        type: BooleanConstructor;
        default: boolean;
    };
    popupAlign: VueTypeValidableDef<{
        [key: string]: any;
    }> & {
        default: () => {
            [key: string]: any;
        };
    } & {
        default: () => {
            [key: string]: any;
        };
    };
    popupVisible: {
        type: BooleanConstructor;
        default: undefined;
    };
    defaultPopupVisible: {
        type: BooleanConstructor;
        default: boolean;
    };
    maskTransitionName: StringConstructor;
    maskAnimation: StringConstructor;
    stretch: StringConstructor;
    alignPoint: {
        type: BooleanConstructor;
        default: undefined;
    };
    autoDestroy: {
        type: BooleanConstructor;
        default: boolean;
    };
    mobile: ObjectConstructor;
    getTriggerDOMNode: PropType<(d?: HTMLElement) => HTMLElement>;
}>, {
    vcTriggerContext: {
        onPopupMouseDown?: (...args: any[]) => void;
        onPopupMouseenter?: (...args: any[]) => void;
        onPopupMouseleave?: (...args: any[]) => void;
    };
    popupRef: ShallowRef<null, null>;
    setPopupRef: (val: any) => void;
    triggerRef: ShallowRef<null, null>;
    align: ComputedRef< AlignType | {
        [key: string]: any;
    }>;
    focusTime: null;
    clickOutsideHandler: null;
    contextmenuOutsideHandler1: null;
    contextmenuOutsideHandler2: null;
    touchOutsideHandler: null;
    attachId: null;
    delayTimer: null;
    hasPopupMouseDown: boolean;
    preClickTime: null;
    preTouchTime: null;
    mouseDownTimeout: null;
    childOriginEvents: {};
}, {
    prevPopupVisible: boolean;
    sPopupVisible: boolean;
    point: null;
}, {}, {
    updatedCal(): void;
    onMouseenter(e: any): void;
    onMouseMove(e: any): void;
    onMouseleave(e: any): void;
    onPopupMouseenter(): void;
    onPopupMouseleave(e: any): void;
    onFocus(e: any): void;
    onMousedown(e: any): void;
    onTouchstart(e: any): void;
    onBlur(e: any): void;
    onContextmenu(e: any): void;
    onContextmenuClose(): void;
    onClick(event: any): void;
    onPopupMouseDown(...args: any[]): void;
    onDocumentClick(event: any): void;
    getPopupDomNode(): any;
    getRootDomNode(): any;
    handleGetPopupClassFromAlign(align: any): string;
    getPopupAlign(): AlignType | {
        [key: string]: any;
    };
    getComponent(): import("vue/jsx-runtime").JSX.Element;
    attachParent(popupContainer: any): void;
    getContainer(): any;
    setPopupVisible(sPopupVisible: boolean, event?: any): void;
    setPoint(point: any): void;
    handlePortalUpdate(): void;
    delaySetPopupVisible(visible: boolean, delayS: number, event?: any): void;
    clearDelayTimer(): void;
    clearOutsideHandler(): void;
    createTwoChains(event: string): any;
    isClickToShow(): any;
    isContextMenuOnly(): boolean;
    isContextmenuToShow(): any;
    isClickToHide(): any;
    isMouseEnterToShow(): any;
    isMouseLeaveToHide(): any;
    isFocusToShow(): any;
    isBlurToHide(): any;
    forcePopupAlign(): void;
    fireEvents(type: string, e: Event): void;
    close(): void;
}, {
    methods: {
        setState(state: {} | undefined, callback: () => any): void;
        __emit(): void;
    };
}, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
    action: VueTypeDef<string | string[]> & {
        default: string | (() => string[]);
    };
    showAction: VueTypeValidableDef<any> & {
        default: any;
    };
    hideAction: VueTypeValidableDef<any> & {
        default: any;
    };
    getPopupClassNameFromAlign: VueTypeValidableDef<any> & {
        default: any;
    };
    onPopupVisibleChange: PropType<(open: boolean) => void>;
    afterPopupVisibleChange: VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    } & {
        default: (...args: any[]) => any;
    };
    popup: VueTypeValidableDef<any>;
    arrow: VueTypeValidableDef<boolean> & {
        default: boolean;
    } & {
        default: boolean;
    };
    popupStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    prefixCls: VueTypeValidableDef<string> & {
        default: string;
    } & {
        default: string;
    };
    popupClassName: VueTypeValidableDef<string> & {
        default: string;
    } & {
        default: string;
    };
    popupPlacement: StringConstructor;
    builtinPlacements: VueTypeValidableDef<{
        [key: string]: any;
    }> & {
        default: () => {
            [key: string]: any;
        };
    };
    popupTransitionName: StringConstructor;
    popupAnimation: VueTypeValidableDef<any>;
    mouseEnterDelay: VueTypeValidableDef<number> & {
        default: number;
    } & {
        default: number;
    };
    mouseLeaveDelay: VueTypeValidableDef<number> & {
        default: number;
    } & {
        default: number;
    };
    zIndex: NumberConstructor;
    focusDelay: VueTypeValidableDef<number> & {
        default: number;
    } & {
        default: number;
    };
    blurDelay: VueTypeValidableDef<number> & {
        default: number;
    } & {
        default: number;
    };
    getPopupContainer: FunctionConstructor;
    getDocument: VueTypeValidableDef<(...args: any[]) => any> & {
        default: (...args: any[]) => any;
    } & {
        default: (...args: any[]) => any;
    };
    forceRender: {
        type: BooleanConstructor;
        default: undefined;
    };
    destroyPopupOnHide: {
        type: BooleanConstructor;
        default: boolean;
    };
    mask: {
        type: BooleanConstructor;
        default: boolean;
    };
    maskClosable: {
        type: BooleanConstructor;
        default: boolean;
    };
    popupAlign: VueTypeValidableDef<{
        [key: string]: any;
    }> & {
        default: () => {
            [key: string]: any;
        };
    } & {
        default: () => {
            [key: string]: any;
        };
    };
    popupVisible: {
        type: BooleanConstructor;
        default: undefined;
    };
    defaultPopupVisible: {
        type: BooleanConstructor;
        default: boolean;
    };
    maskTransitionName: StringConstructor;
    maskAnimation: StringConstructor;
    stretch: StringConstructor;
    alignPoint: {
        type: BooleanConstructor;
        default: undefined;
    };
    autoDestroy: {
        type: BooleanConstructor;
        default: boolean;
    };
    mobile: ObjectConstructor;
    getTriggerDOMNode: PropType<(d?: HTMLElement) => HTMLElement>;
}>> & Readonly<{}>, {
    mask: boolean;
    prefixCls: string;
    forceRender: boolean;
    autoDestroy: boolean;
    action: string | string[];
    showAction: any;
    hideAction: any;
    getPopupClassNameFromAlign: any;
    afterPopupVisibleChange: (...args: any[]) => any;
    arrow: boolean;
    popupStyle: CSSProperties;
    popupClassName: string;
    builtinPlacements: {
        [key: string]: any;
    };
    mouseEnterDelay: number;
    mouseLeaveDelay: number;
    focusDelay: number;
    blurDelay: number;
    getDocument: (...args: any[]) => any;
    destroyPopupOnHide: boolean;
    maskClosable: boolean;
    popupAlign: {
        [key: string]: any;
    };
    popupVisible: boolean;
    defaultPopupVisible: boolean;
    alignPoint: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default _default;
