import { Orientation, TokenContract } from '../shared/index.js';

interface ResizableLayoutProps {
    orientation?: Orientation;
    /** Initial sizes as percentages (must sum to 100) */
    defaultSizes?: number[];
    /** Minimum size for each pane (percentage) */
    minSizes?: number[];
    /** Maximum size for each pane (percentage) */
    maxSizes?: number[];
    /** localStorage key for persisting sizes */
    persistKey?: string;
}
interface ResizableLayoutAPI {
    /** Current pane sizes as percentages */
    sizes: number[];
    /** Begin a resize operation at divider index */
    startResize: (index: number) => void;
    /** Apply a delta (percentage) during resize */
    onResize: (delta: number) => void;
    /** End the current resize operation */
    endResize: () => void;
    /** Generate CSS custom properties for pane sizes */
    getCSSVariables: () => Record<string, string>;
    /** Current orientation */
    orientation: Orientation;
}
declare function createResizableLayout(props?: ResizableLayoutProps): ResizableLayoutAPI;

declare const resizableLayoutTokens: TokenContract;
declare const resizableLayoutVariants: (props?: ({
    orientation?: "horizontal" | "vertical" | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const resizableDividerVariants: (props?: ({
    orientation?: "horizontal" | "vertical" | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const resizablePaneVariants: (props?: ({
    orientation?: "horizontal" | "vertical" | undefined;
} & {
    className?: string;
}) | undefined) => string;

export { type ResizableLayoutAPI, type ResizableLayoutProps, createResizableLayout, resizableDividerVariants, resizableLayoutTokens, resizableLayoutVariants, resizablePaneVariants };
