/**
 * A slide-out panel that appears from the edge of the screen.
 * Use for secondary content, navigation menus, or forms that don't require full-page context.
 * @category Overlays
 * @useCases side panel, mobile menu, filters, settings, navigation
 * @keywords drawer, panel, slide, sidebar, sheet, mobile
 * @related UiSheet, UiDialog
 */
export interface UiDrawerProps {
    /**
     * The controlled open state of the drawer.
     * - Omit for uncontrolled mode (component manages state internally)
     * - Use `v-model:open` for controlled mode
     */
    open?: boolean;
    /**
     * The modality of the drawer.
     * When set to `true`, interaction with outside elements is disabled and focus is trapped.
     * @default true
     */
    modal?: boolean;
}
/**
 * Props for the UiDrawerTrigger component.
 * The element that opens the drawer when clicked.
 */
export interface UiDrawerTriggerProps {
    /**
     * Render as child element (merges props into slotted element instead of wrapping).
     * Set to `true` when using custom button components like `UiButton`.
     * @default false
     */
    asChild?: boolean;
}
/**
 * Props for the UiDrawerClose component.
 * A button that closes the drawer when clicked.
 */
export interface UiDrawerCloseProps {
    /**
     * Render as child element (merges props into slotted element instead of wrapping).
     * @default false
     */
    asChild?: boolean;
}
/**
 * Props for the UiDrawerContent component.
 * The main content container for the drawer.
 */
export interface UiDrawerContentProps {
    /**
     * Prop to disable pointer events outside the dialog.
     * @default false
     */
    disableOutsidePointerEvents?: boolean;
    /**
     * Shows the small "handle" bar at the top of the drawer.
     * @default true
     */
    showHandle?: boolean;
}
/**
 * Emits for the UiDrawerContent component.
 */
export interface UiDrawerContentEmits {
    (e: 'openAutoFocus', event: Event): void;
    (e: 'closeAutoFocus', event: Event): void;
    (e: 'interactOutside', event: Event): void;
    (e: 'focusOutside', event: Event): void;
    (e: 'pointerDownOutside', event: Event): void;
    (e: 'escapeKeyDown', event: KeyboardEvent): void;
}
/**
 * Props for the UiDrawerHeader component.
 * Container for the drawer's header content (title, description).
 */
export interface UiDrawerHeaderProps {
    /**
     * Render as child element (merges props into slotted element instead of wrapping).
     * @default false
     */
    asChild?: boolean;
}
/**
 * Props for the UiDrawerFooter component.
 * Container for the drawer's footer content (action buttons).
 */
export interface UiDrawerFooterProps {
    /**
     * Render as child element (merges props into slotted element instead of wrapping).
     * @default false
     */
    asChild?: boolean;
}
/**
 * Props for the UiDrawerTitle component.
 * The accessible title for the drawer.
 */
export interface UiDrawerTitleProps {
    /**
     * Render as child element (merges props into slotted element instead of wrapping).
     * @default false
     */
    asChild?: boolean;
}
/**
 * Props for the UiDrawerDescription component.
 * The accessible description for the drawer.
 */
export interface UiDrawerDescriptionProps {
    /**
     * Render as child element (merges props into slotted element instead of wrapping).
     * @default false
     */
    asChild?: boolean;
}
