export type MaDrawerPlacement = 'left' | 'right';
export type MaDrawerMarginSize = 'small' | 'medium' | 'none';
export interface MaDrawerProps {
    /**
     * Controls the visibility of the drawer.
     * @default false
     */
    visible?: boolean;
    /**
     * Sets the width of the drawer container.
     */
    width?: string;
    /**
     * Specifies the z-index of the drawer overlay.
     * @default 1000
     */
    zIndex?: number;
    /**
     * Vue native teleport component prop `:to`
     *
     * {@link https://vuejs.org/guide/built-ins/teleport.html#basic-usage}
     */
    to?: string | HTMLElement;
    /**
     * Determines the placement of the drawer on the screen.
     * @default right
     */
    placement?: MaDrawerPlacement;
    /**
     * Determines whether the drawer should close when the close button is clicked.
     * @default true
     */
    closable?: boolean;
    /**
     * Determines whether the drawer should close when the overlay is clicked.
     * @default true
     */
    maskClosable?: boolean;
    /**
     * Specifies the height of an external header (e.g., dashboard header) to account for when the drawer is fixed.
     * This allows the drawer to adjust its position or size accordingly.
     */
    headerHeight?: string;
    /**
     * Makes the drawer header sticky (fixed) when scrolling.
     * @default false
     */
    headerSticky?: boolean;
    /**
     * Makes the drawer footer sticky (fixed) when scrolling.
     * @default false
     */
    footerSticky?: boolean;
    /**
     * Sets the margin size of the drawer container.
     * @default small
     */
    marginSize?: MaDrawerMarginSize;
    /**
     * Sets the drawer's title.
     */
    title?: string;
    /**
     * Sets the drawer's subtitle.
     */
    hintText?: string;
}
export interface MaDrawerEvents {
    /**
     * Emitted when the drawer's visibility changes.
     * @param open - Indicates whether the drawer is now open (`true`) or closed (`false`).
     */
    (e: 'update:visible', open: boolean): void;
    /**
     * Emitted after the drawer has fully opened and the opening animation is complete.
     */
    (e: 'opened'): void;
    /**
     * Emitted after the drawer has fully closed and the closing animation is complete.
     */
    (e: 'closed'): void;
}
export interface MaDrawerSlots {
    /**
     * Slot for the drawer's header content.
     * Typically used to display the title or controls.
     */
    header: () => unknown;
    /**
     * Slot for the drawer's tab menu.
     */
    tabs: () => unknown;
    /**
     * Default slot for the main content of the drawer.
     * Used to display the primary information or interactive elements.
     */
    default: () => unknown;
    /**
     * Slot for the drawer's footer content.
     * Commonly used for action buttons or supplementary information.
     */
    footer: () => unknown;
}
