import { TNode, Renderable, Value } from '@tempots/dom';
import { OverlayEffect } from '../theme/types';
export interface DrawerOptions {
    /** Size of the drawer */
    size?: Value<'sm' | 'md' | 'lg' | 'xl'>;
    /** Side of the viewport/element to anchor the drawer to */
    side?: Value<'top' | 'right' | 'bottom' | 'left' | 'inline-start' | 'inline-end'>;
    /** Whether the drawer can be closed by clicking outside or pressing escape */
    dismissable?: Value<boolean>;
    /** Whether to show the close button in header (only applies if header is provided) */
    showCloseButton?: Value<boolean>;
    /** Callback when drawer is closed */
    onClose?: () => void;
    /** Overlay effect */
    overlayEffect?: Value<OverlayEffect>;
    /** Container for the overlay: 'body' (default) or 'element' (current element) */
    container?: 'body' | 'element';
    /** Header content for the drawer */
    header?: TNode;
    /** Body content for the drawer */
    body: TNode;
    /** Footer content for the drawer */
    footer?: TNode;
}
/**
 * Drawer component that provides a slide-out panel anchored to any side
 * Built on top of the overlay component
 */
export declare function Drawer(fn: (open: (options: DrawerOptions) => void, close: () => void) => TNode): Renderable;
