import { type DialogController, type DialogResult } from '../dialog'; import type { DynamicComponentModel } from '../dynamic-component'; import type { Component, Snippet } from 'svelte'; export type DrawerContent = Snippet | DynamicComponentModel; export type DrawerViewComponent = Component<{ controller: DialogController; data: TData; }>; type DrawerCommonOptions = { /** Edge the drawer slides in from. @default 'right' */ side?: 'left' | 'right'; /** Width in px. @default 360 */ width?: number; /** Close on ESC, backdrop click, and show the close button. @default true */ dismissible?: boolean; }; export type DrawerSnippetOptions = DrawerCommonOptions & { title?: string; /** Body content — a snippet or a DynamicComponentModel. */ content: DrawerContent; /** Footer content — a snippet or a DynamicComponentModel. */ footer?: DrawerContent; }; export type DrawerViewOptions = DrawerCommonOptions & { /** Custom view component receiving `{ controller, data }`. Owns the entire drawer chrome (typically wraps a kit Dialog). */ view: DrawerViewComponent; data: TData; }; export type DrawerOptions = DrawerSnippetOptions | DrawerViewOptions; export type DrawerData = { dismissible: boolean; view?: DrawerViewComponent; viewData?: unknown; title?: string; content?: DrawerContent; footer?: DrawerContent; }; export declare const DRAWER_DIALOG_ID = "sc-kit-drawer"; export declare const openDrawer: (options: DrawerOptions) => Promise>; export declare const closeDrawer: (apply?: boolean) => void; export {};