import { InjectionKey, Ref } from 'vue'; export interface PanelConfig { id: string; defaultSize: number; min: number; max: number; flex: boolean; collapseOnMobile: boolean; hideOnMobile: boolean; } export interface PanelState { id: string; config: PanelConfig; size: Ref; collapsed: Ref; /** DOM reference set by Panel.vue for direct style mutation during drag. */ el: Ref; } export interface ResizableContext { direction: Ref<'horizontal' | 'vertical'>; isMobile: Ref; panels: Ref; registerPanel: (config: PanelConfig) => PanelState; unregisterPanel: (id: string) => void; onHandlePointerDown: (panelId: string, event: PointerEvent) => void; } export declare const RESIZABLE_KEY: InjectionKey; export declare function nextPanelId(): string; export declare function useResizableLayoutProvider(options: { directionProp: Ref<'horizontal' | 'vertical'>; mobileDirection: 'horizontal' | 'vertical'; breakpoint: number; containerEl: Ref; }): { context: ResizableContext; observe: () => void; disconnect: () => void; }; //# sourceMappingURL=useResizableLayout.d.ts.map