import { type IDrawerOptions } from '@breadstone/mosaik-elements-foundation'; /** * Represents the return type of the `useDrawer` hook. * * @public */ export interface IUseDrawerReturn { /** * Opens a drawer with the specified wrapper component. * * @template T - Type of the wrapper component extending HTMLElement. * @template TData - Type of data provided to the wrapper component. * @template TResult - Expected return type of the resolved drawer result. * @param drawerId - Unique identifier for the drawer. * @param wrapperClass - Constructor for the wrapper component. * @param options - Optional drawer configuration. * @param data - Optional data to pass to the wrapper. * @returns Promise resolving to the drawer result. */ open(drawerId: string, wrapperClass: new (args?: TData) => T, options?: IDrawerOptions, data?: TData): Promise; /** * Closes a drawer by its identifier. * * @template TResult - Type of the result to return. * @param drawerId - The identifier of the drawer to close. * @param result - Optional result to pass to the drawer opener. * @returns Promise that resolves when the drawer is closed. */ close(drawerId: string, result?: TResult): Promise; } /** * React hook for managing drawers using the foundation DrawerService singleton. * * @remarks * This hook provides a React-idiomatic interface to the foundation DrawerService. * The service should be configured at application startup using `DrawerService.configure()`. * * @example * ```tsx * // In your app setup * DrawerService.configure({ * behaviors: [withDrawerStackBehavior({ baseWidth: '400px' })], * closeOnNavigation: true * }); * * // In your component * function MyComponent() { * const drawer = useDrawer(); * * const handleOpen = async () => { * const result = await drawer.open('myDrawer', MyDrawerWrapper, { * position: 'right', * width: '400px' * }); * console.log('Drawer result:', result); * }; * * return ; * } * ``` * * @public * @returns An object containing drawer management functions. */ export declare function useDrawer(): IUseDrawerReturn; //# sourceMappingURL=useDrawer.d.ts.map