import { type CSSProperties, type PropType, type SlotsType, type VNodeChild } from 'vue';
import type { MantineTransition } from './transitions';
export type { MantineTransition } from './transitions';
export interface TransitionSlots {
    default?: (styles: CSSProperties) => VNodeChild;
}
export interface TransitionProps {
    /** If set, the element is kept in the DOM when hidden */
    keepMounted?: boolean;
    /** Transition name or object */
    transition?: MantineTransition;
    /** Transition duration in ms @default 250 */
    duration?: number;
    /** Exit transition duration in ms @default duration */
    exitDuration?: number;
    /** Transition timing function @default theme.transitionTimingFunction */
    timingFunction?: string;
    /** Determines whether component should be mounted to the DOM */
    mounted: boolean;
    /** Delay in ms before enter transition starts */
    enterDelay?: number;
    /** Delay in ms before exit transition starts */
    exitDelay?: number;
}
export declare const Transition: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    keepMounted: {
        type: BooleanConstructor;
        default: boolean;
    };
    transition: {
        type: PropType<MantineTransition>;
        default: string;
    };
    duration: {
        type: NumberConstructor;
        default: number;
    };
    exitDuration: {
        type: NumberConstructor;
        default: undefined;
    };
    timingFunction: {
        type: StringConstructor;
        default: string;
    };
    mounted: {
        type: BooleanConstructor;
        required: true;
    };
    enterDelay: {
        type: NumberConstructor;
        default: undefined;
    };
    exitDelay: {
        type: NumberConstructor;
        default: undefined;
    };
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    enter: () => true;
    entered: () => true;
    exit: () => true;
    exited: () => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    keepMounted: {
        type: BooleanConstructor;
        default: boolean;
    };
    transition: {
        type: PropType<MantineTransition>;
        default: string;
    };
    duration: {
        type: NumberConstructor;
        default: number;
    };
    exitDuration: {
        type: NumberConstructor;
        default: undefined;
    };
    timingFunction: {
        type: StringConstructor;
        default: string;
    };
    mounted: {
        type: BooleanConstructor;
        required: true;
    };
    enterDelay: {
        type: NumberConstructor;
        default: undefined;
    };
    exitDelay: {
        type: NumberConstructor;
        default: undefined;
    };
}>> & Readonly<{
    onEnter?: (() => any) | undefined;
    onEntered?: (() => any) | undefined;
    onExited?: (() => any) | undefined;
    onExit?: (() => any) | undefined;
}>, {
    duration: number;
    keepMounted: boolean;
    transition: MantineTransition;
    timingFunction: string;
    exitDuration: number;
    enterDelay: number;
    exitDelay: number;
}, SlotsType<TransitionSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
