import { CSSProperties, ExtractPropTypes, PropType, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { CustomSlotsType, LiteralUnion, VueNode } from '../_util/type';
import { VueTypeValidableDef } from 'vue-types';
import { TriggerType, TooltipPlacement } from './abstractTooltipProps';
import { PresetColorType } from '../_util/colors';
import { AdjustOverflow } from './Tooltip';
import { AlignType, BuildInPlacements } from '../vc-trigger/interface';
export type { TooltipPlacement, TriggerType } from './abstractTooltipProps';
export type { AdjustOverflow, PlacementsConfig } from '../_util/placements';
export interface TooltipAlignConfig {
    points?: [string, string];
    offset?: [number | string, number | string];
    targetOffset?: [number | string, number | string];
    overflow?: {
        adjustX: boolean;
        adjustY: boolean;
    };
    useCssRight?: boolean;
    useCssBottom?: boolean;
    useCssTransform?: boolean;
}
export declare const tooltipProps: () => {
    title: VueTypeValidableDef<any>;
    trigger: PropType< TriggerType | TriggerType[]>;
    open: {
        type: BooleanConstructor;
        default: undefined;
    };
    visible: {
        type: BooleanConstructor;
        default: undefined;
    };
    placement: PropType<TooltipPlacement>;
    color: PropType<LiteralUnion<PresetColorType>>;
    transitionName: StringConstructor;
    overlayStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    overlayInnerStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    overlayClassName: StringConstructor;
    openClassName: StringConstructor;
    prefixCls: StringConstructor;
    mouseEnterDelay: NumberConstructor;
    mouseLeaveDelay: NumberConstructor;
    getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
    arrowPointAtCenter: {
        type: BooleanConstructor;
        default: undefined;
    };
    arrow: {
        type: PropType<boolean | {
            pointAtCenter?: boolean;
        }>;
        default: boolean | {
            pointAtCenter?: boolean;
        };
    };
    autoAdjustOverflow: {
        type: PropType<boolean | AdjustOverflow>;
        default: boolean | AdjustOverflow;
    };
    destroyTooltipOnHide: {
        type: BooleanConstructor;
        default: undefined;
    };
    align: {
        type: PropType<AlignType>;
        default: AlignType;
    };
    builtinPlacements: {
        type: PropType<BuildInPlacements>;
        default: BuildInPlacements;
    };
    children: ArrayConstructor;
    onVisibleChange: PropType<(vis: boolean) => void>;
    'onUpdate:visible': PropType<(vis: boolean) => void>;
    onOpenChange: PropType<(vis: boolean) => void>;
    'onUpdate:open': PropType<(vis: boolean) => void>;
};
export declare const tooltipDefaultProps: () => {
    trigger: string;
    align: {};
    placement: string;
    mouseEnterDelay: number;
    mouseLeaveDelay: number;
    arrowPointAtCenter: boolean;
    autoAdjustOverflow: boolean;
};
export type TooltipProps = Partial<ExtractPropTypes<ReturnType<typeof tooltipProps>>>;
declare const _default: DefineComponent<ExtractPropTypes<{
    title: VueTypeValidableDef<any>;
    trigger: PropType< TriggerType | TriggerType[]>;
    open: {
        type: BooleanConstructor;
        default: undefined;
    };
    visible: {
        type: BooleanConstructor;
        default: undefined;
    };
    placement: PropType<TooltipPlacement>;
    color: PropType<LiteralUnion<PresetColorType>>;
    transitionName: StringConstructor;
    overlayStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    overlayInnerStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    overlayClassName: StringConstructor;
    openClassName: StringConstructor;
    prefixCls: StringConstructor;
    mouseEnterDelay: NumberConstructor;
    mouseLeaveDelay: NumberConstructor;
    getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
    arrowPointAtCenter: {
        type: BooleanConstructor;
        default: undefined;
    };
    arrow: {
        type: PropType<boolean | {
            pointAtCenter?: boolean;
        }>;
        default: boolean | {
            pointAtCenter?: boolean;
        };
    };
    autoAdjustOverflow: {
        type: PropType<boolean | AdjustOverflow>;
        default: boolean | AdjustOverflow;
    };
    destroyTooltipOnHide: {
        type: BooleanConstructor;
        default: undefined;
    };
    align: {
        type: PropType<AlignType>;
        default: AlignType;
    };
    builtinPlacements: {
        type: PropType<BuildInPlacements>;
        default: BuildInPlacements;
    };
    children: ArrayConstructor;
    onVisibleChange: PropType<(vis: boolean) => void>;
    'onUpdate:visible': PropType<(vis: boolean) => void>;
    onOpenChange: PropType<(vis: boolean) => void>;
    'onUpdate:open': PropType<(vis: boolean) => void>;
}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<{
    title: VueTypeValidableDef<any>;
    trigger: PropType< TriggerType | TriggerType[]>;
    open: {
        type: BooleanConstructor;
        default: undefined;
    };
    visible: {
        type: BooleanConstructor;
        default: undefined;
    };
    placement: PropType<TooltipPlacement>;
    color: PropType<LiteralUnion<PresetColorType>>;
    transitionName: StringConstructor;
    overlayStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    overlayInnerStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    overlayClassName: StringConstructor;
    openClassName: StringConstructor;
    prefixCls: StringConstructor;
    mouseEnterDelay: NumberConstructor;
    mouseLeaveDelay: NumberConstructor;
    getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
    arrowPointAtCenter: {
        type: BooleanConstructor;
        default: undefined;
    };
    arrow: {
        type: PropType<boolean | {
            pointAtCenter?: boolean;
        }>;
        default: boolean | {
            pointAtCenter?: boolean;
        };
    };
    autoAdjustOverflow: {
        type: PropType<boolean | AdjustOverflow>;
        default: boolean | AdjustOverflow;
    };
    destroyTooltipOnHide: {
        type: BooleanConstructor;
        default: undefined;
    };
    align: {
        type: PropType<AlignType>;
        default: AlignType;
    };
    builtinPlacements: {
        type: PropType<BuildInPlacements>;
        default: BuildInPlacements;
    };
    children: ArrayConstructor;
    onVisibleChange: PropType<(vis: boolean) => void>;
    'onUpdate:visible': PropType<(vis: boolean) => void>;
    onOpenChange: PropType<(vis: boolean) => void>;
    'onUpdate:open': PropType<(vis: boolean) => void>;
}>> & Readonly<{}>, {
    open: boolean;
    visible: boolean;
    align: AlignType;
    arrow: boolean | {
        pointAtCenter?: boolean;
    };
    builtinPlacements: BuildInPlacements;
    autoAdjustOverflow: boolean | AdjustOverflow;
    arrowPointAtCenter: boolean;
    overlayInnerStyle: CSSProperties;
    overlayStyle: CSSProperties;
    destroyTooltipOnHide: boolean;
}, CustomSlotsType<{
    title?: any;
    default?: any;
}>, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default _default;
