import { CSSProperties, PropType, TransitionProps } from 'vue';
import { VueTypeDef, VueTypeValidableDef } from 'vue-types';
export type IPlacement = 'left' | 'top' | 'right' | 'bottom';
type ILevelMove = number | [number, number];
declare const drawerProps: () => {
    forceRender: {
        type: BooleanConstructor;
        default: undefined;
    };
    getContainer: VueTypeDef<any>;
    prefixCls: StringConstructor;
    width: VueTypeDef<string | number>;
    height: VueTypeDef<string | number>;
    style: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    class: StringConstructor;
    rootClassName: StringConstructor;
    rootStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    placement: {
        type: PropType<IPlacement>;
    };
    wrapperClassName: StringConstructor;
    level: {
        type: PropType<string | string[]>;
    };
    levelMove: {
        type: PropType<ILevelMove | ((e: {
            target: HTMLElement;
            open: boolean;
        }) => ILevelMove)>;
    };
    duration: StringConstructor;
    ease: StringConstructor;
    showMask: {
        type: BooleanConstructor;
        default: undefined;
    };
    maskClosable: {
        type: BooleanConstructor;
        default: undefined;
    };
    maskStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    afterVisibleChange: FunctionConstructor;
    keyboard: {
        type: BooleanConstructor;
        default: undefined;
    };
    contentWrapperStyle: {
        type: PropType<CSSProperties[]>;
        default: CSSProperties[];
    };
    autofocus: {
        type: BooleanConstructor;
        default: undefined;
    };
    open: {
        type: BooleanConstructor;
        default: undefined;
    };
    motion: {
        type: PropType<(placement: IPlacement) => TransitionProps>;
        default: (placement: IPlacement) => TransitionProps;
    };
    maskMotion: {
        type: PropType<TransitionProps>;
        default: TransitionProps;
    };
};
declare const drawerChildProps: () => {
    getContainer: FunctionConstructor;
    getOpenCount: PropType<() => number>;
    scrollLocker: VueTypeValidableDef<any>;
    inline: BooleanConstructor;
    prefixCls: StringConstructor;
    width: VueTypeDef<string | number>;
    height: VueTypeDef<string | number>;
    style: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    class: StringConstructor;
    rootClassName: StringConstructor;
    rootStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    placement: {
        type: PropType<IPlacement>;
    };
    wrapperClassName: StringConstructor;
    level: {
        type: PropType<string | string[]>;
    };
    levelMove: {
        type: PropType<ILevelMove | ((e: {
            target: HTMLElement;
            open: boolean;
        }) => ILevelMove)>;
    };
    duration: StringConstructor;
    ease: StringConstructor;
    showMask: {
        type: BooleanConstructor;
        default: undefined;
    };
    maskClosable: {
        type: BooleanConstructor;
        default: undefined;
    };
    maskStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    afterVisibleChange: FunctionConstructor;
    keyboard: {
        type: BooleanConstructor;
        default: undefined;
    };
    contentWrapperStyle: {
        type: PropType<CSSProperties[]>;
        default: CSSProperties[];
    };
    autofocus: {
        type: BooleanConstructor;
        default: undefined;
    };
    open: {
        type: BooleanConstructor;
        default: undefined;
    };
    motion: {
        type: PropType<(placement: IPlacement) => TransitionProps>;
        default: (placement: IPlacement) => TransitionProps;
    };
    maskMotion: {
        type: PropType<TransitionProps>;
        default: TransitionProps;
    };
};
export { drawerChildProps, drawerProps };
