import { CSSResultGroup, LitElement, PropertyValues } from 'lit'; /** Drawer positions */ export type DrawerPosition = 'left' | 'right' | 'top' | 'bottom'; /** Drawer size variants */ export type DrawerVariant = 'basic' | 'small' | 'flexible'; export declare class DrawerElement extends LitElement { static styles: CSSResultGroup; /** Whether drawer is open */ open: boolean; /** Edge it appears from */ position: DrawerPosition; /** Size variant */ variant: DrawerVariant; /** Show backdrop overlay */ overlay: boolean; /** Close when backdrop clicked */ closeOnOverlayClick: boolean; /** Close when ESC pressed */ closeOnEsc: boolean; /** Custom width for horizontal drawers */ width?: string | number; /** Custom height for vertical drawers */ height?: string | number; /** aria-label for panel */ ariaLabel: string | null; /** aria-labelledby for panel */ ariaLabelledBy: string | null; /** Internal: track if opened once (enable transitions) */ private openedOnce; /** Previously focused element to restore on close */ private previouslyFocused?; /** Track timeouts for cleanup */ private timeouts; /** Panel element */ private panelEl?; /** Footer slot element */ private footerSlot?; /** Whether footer has any projected content */ private hasFooterContent; connectedCallback(): void; disconnectedCallback(): void; /** Public: programmatically open */ openDrawer(): void; /** Public: programmatically close */ closeDrawer(): void; /** Public: toggle state */ toggle(): void; protected willUpdate(changed: PropertyValues): void; protected firstUpdated(): void; protected updated(changed: PropertyValues): void; render(): import('lit').TemplateResult<1>; private _inlineStyle; private _resolveSize; private _autoFocus; private _getFocusable; private _afterOpen; private _beforeClose; private _afterClosed; private _restoreFocus; private _lockBodyScroll; private _unlockBodyScroll; private _clearTimeouts; private _emitOpenChange; private onBackdropClick; private _boundOnKeydown?; private onKeydown; private _handleTabKey; private _handleFooterSlotChange; private _evaluateFooterSlot; } declare global { interface HTMLElementTagNameMap { 'cds-drawer': DrawerElement; } }