import { EventEmitter } from '../../stencil-public-runtime';
import { DrawerPosition, DrawerSize } from './types';
/**
* @component BcmDrawer
* @description A slide-in panel component built on the native HTML Dialog API.
* Ideal for navigation menus, forms, and contextual information that slides in from any edge of the screen.
*
* @slot - Main content area of the drawer
* @slot header - Custom header content (overrides headerText prop)
* @slot helper - Custom helper text content (overrides helper-text prop)
* @slot footer - Footer content for action buttons
*
* @part dialog - The native dialog element
* @part container - The container wrapper for positioning
* @part drawer - The main drawer panel
* @part header - The header section
* @part header-content - The content wrapper inside header
* @part title - The title heading element
* @part helper-text - The helper text paragraph
* @part close-button - The close button in header
* @part content - The main content area
* @part footer - The footer section
*
* @example
* ```html
*
*
*
*
*
*
*
*
Settings
*
*
*
*
*
*
*
*
*
*
Custom height drawer
*
*
*
* Content
*
* ```
*/
export declare class BcmDrawer {
host: HTMLBcmDrawerElement;
private dialogRef?;
/**
* Controls whether the drawer is open or closed
*/
open: boolean;
/**
* The size of the drawer. Can be a preset value or a custom CSS size
* - For left/right drawers:
* - 'small': 320px
* - 'medium': 480px
* - 'large': 1064px
* - For top/bottom drawers:
* - 'small': 40vh
* - 'medium': 60vh
* - 'large': 90vh
* - Custom values: Any valid CSS size (e.g., '600px', '50%', '30rem', '80vw')
*/
size: DrawerSize;
/**
* The position where the drawer slides in from
* - 'left': Slides from the left edge
* - 'right': Slides from the right edge
* - 'top': Slides from the top edge
* - 'bottom': Slides from the bottom edge
*/
position: DrawerPosition;
/**
* Makes the drawer take full width (for left/right) or full height (for top/bottom)
*/
fullWidth: boolean;
/**
* Makes the drawer take the full screen (100vw x 100vh)
*/
fullScreen: boolean;
/**
* Controls backdrop behavior
* - true: Shows backdrop, drawer can be closed by clicking outside
* - false: No backdrop
* - 'static': Shows backdrop but prevents closing by clicking outside (triggers shake animation)
*/
backdrop: boolean | 'static';
/**
* Text to display in the drawer header
*/
headerText?: string;
/**
* Helper text to display below the header title
*/
helperText?: string;
/**
* Hides the header section completely
*/
noHeader: boolean;
/**
* Hides the footer section completely
*/
noFooter: boolean;
/**
* Allows closing the drawer by clicking on the backdrop
*/
closeOnBackdrop: boolean;
/**
* Allows closing the drawer by pressing the Escape key
*/
closeOnEscape: boolean;
shake: boolean;
/**
* Emitted after the drawer has opened
*/
bcmOpen: EventEmitter;
/**
* Emitted after the drawer has closed
*/
bcmClose: EventEmitter;
/**
* Emitted before the drawer opens. Can be cancelled by calling event.preventDefault()
*/
bcmBeforeOpen: EventEmitter;
/**
* Emitted before the drawer closes. Can be cancelled by calling event.preventDefault()
*/
bcmBeforeClose: EventEmitter;
private drawerClass;
handleOpenChange(isOpen: boolean): void;
handleClick(event: MouseEvent): void;
/**
* Programmatically opens the drawer
*/
show(): Promise;
/**
* Programmatically closes the drawer
*/
hide(): Promise;
/**
* Toggles the drawer open/closed state
*/
toggle(): Promise;
private shakeDrawer;
private handleBackdropClick;
private handleDialogCancel;
private handleDrawerClick;
componentDidLoad(): void;
disconnectedCallback(): void;
private getDrawerStyle;
render(): any;
}