import { type PropType, type ExtractPublicPropTypes } from 'vue';
import { type ThemeComponent } from '../../composables/useTheme';
declare const drawerPosition: readonly ["left", "right", "top", "bottom"];
declare const drawerProps: {
    modelValue: BooleanConstructor;
    position: {
        type: PropType<"left" | "right" | "top" | "bottom">;
        default: string;
    };
    teleportTo: {
        type: PropType<string | HTMLElement>;
        default: string;
    };
    width: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    height: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    breakpoint: (StringConstructor | NumberConstructor)[];
    backdrop: {
        type: BooleanConstructor;
        default: boolean;
    };
};
export type DrawerPosition = typeof drawerPosition[number];
export type DrawerProps = ExtractPublicPropTypes<typeof drawerProps>;
type InternalClasses = 'wrapper' | 'backdrop';
export interface DrawerTheme extends ThemeComponent<DrawerProps, InternalClasses> {
}
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    modelValue: BooleanConstructor;
    position: {
        type: PropType<"left" | "right" | "top" | "bottom">;
        default: string;
    };
    teleportTo: {
        type: PropType<string | HTMLElement>;
        default: string;
    };
    width: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    height: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    breakpoint: (StringConstructor | NumberConstructor)[];
    backdrop: {
        type: BooleanConstructor;
        default: boolean;
    };
}>, {
    open: () => void;
    close: (e?: PointerEvent) => void;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    modelValue: BooleanConstructor;
    position: {
        type: PropType<"left" | "right" | "top" | "bottom">;
        default: string;
    };
    teleportTo: {
        type: PropType<string | HTMLElement>;
        default: string;
    };
    width: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    height: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
    breakpoint: (StringConstructor | NumberConstructor)[];
    backdrop: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{
    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
}>, {
    position: "left" | "right" | "top" | "bottom";
    modelValue: boolean;
    teleportTo: string | HTMLElement;
    width: string | number;
    height: string | number;
    backdrop: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
    header?(_: {}): any;
    default?(_: {}): any;
    footer?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
