import { ComputedRef, Ref } from 'vue';
import { ResizablePanelConfig, ResizablePanelState, ResizableDirection } from '../resizable_constants';
import { LayoutResult } from './computeLayout';
import { SavedPanelData } from './useResizableStorage';
export interface UseResizableGroupOptions {
    storageKey: string | null;
    direction: ComputedRef<ResizableDirection>;
    containerRef: Ref<HTMLElement | null>;
    storageAdapter?: import('../resizable_constants').ResizableStorageAdapter;
}
export declare function useResizableGroup(options: UseResizableGroupOptions): {
    layout: ComputedRef<LayoutResult>;
    syncedPanels: ComputedRef<ResizablePanelState[]>;
    panelMap: ComputedRef<Map<string, ResizablePanelState>>;
    containerSize: Ref<number, number>;
    isInitializing: Ref<boolean, boolean>;
    registerPanel: (config: ResizablePanelConfig) => void;
    unregisterPanel: (id: string) => void;
    saveCurrentLayout: (panels: ResizablePanelState[]) => void;
    updateSavedPanel: (panelId: string, updates: Partial<SavedPanelData>) => void;
    reloadFromStorage: () => void;
    clearSavedState: () => void;
    disconnectObserver: () => void;
};
//# sourceMappingURL=useResizableGroup.d.ts.map