import { Style } from '@zag-js/types';
import { PanelData, PanelSize, DragState } from '../splitter.types.mjs';
import '@zag-js/core';
import './registry.mjs';

/**
 * This code was modified from react-resizable-panels by Brian Vaughn
 * @see https://github.com/bvaughn/react-resizable-panels
 */

declare function getPanelById<T extends PanelData>(panels: T[], id: string): T;
declare function findPanelDataIndex(panels: PanelData[], panel: PanelData): number;
declare function findPanelIndex(panels: PanelData[], id: string): number;
declare function panelDataHelper<T extends PanelData>(panels: T[], panel: T, sizes: number[]): T & {
    panelSize: number;
    pivotIndices: number[];
};
declare function sortPanels(panels: PanelData[]): PanelData[];
declare function getPanelLayout(panels: PanelData[]): string;
declare function serializePanels(panels: PanelData[]): string;
declare function getPanelFlexBoxStyle({ size, defaultSize, dragState, resolvedSizes, panels, panelIndex, horizontal, precision, }: {
    size: PanelSize | undefined;
    defaultSize: PanelSize | undefined;
    resolvedSizes: number[];
    dragState: DragState | null;
    panels: PanelData[];
    panelIndex: number;
    horizontal: boolean;
    precision?: number | undefined;
}): Style;
declare function getUnsafeDefaultSize({ panels, size: sizes }: {
    panels: PanelData[];
    size: number[];
}): number[];

export { findPanelDataIndex, findPanelIndex, getPanelById, getPanelFlexBoxStyle, getPanelLayout, getUnsafeDefaultSize, panelDataHelper, serializePanels, sortPanels };
