import React from "react";
import type { AgentPane, AgentPanesLayout, PaneId } from "./agentPanesTypes";
interface AgentPanesGridProps {
    layout: AgentPanesLayout;
    focusedPaneId: PaneId;
    /** Renders the body of one pane. */
    renderPane: (pane: AgentPane, isFocused: boolean) => React.ReactNode;
    /** Mousedown-capture handler so focus moves before child handlers run. */
    onPaneMouseDownCapture: (paneId: PaneId) => void;
}
/**
 * Renders the multi-pane grid using the existing Splitter component.
 *
 * - Single row → one Splitter with direction="horizontal".
 * - Single column ("vertical" orientation) → one Splitter with direction="vertical".
 * - 2-D grid → outer vertical Splitter wrapping per-row horizontal Splitters.
 *
 * Splitter persists panel sizes via its own localStorageKey. Because Splitter
 * reads stored sizes only at mount, we derive the key from the pane *count*
 * (not pane ids) so that splitting + immediately reassigning content doesn't
 * reset the divider. Trade-off: a row with the same count but different
 * agents inherits the previous sizes — acceptable; user can drag again.
 *
 * The Splitter is also remounted (key=) when the count changes so the new
 * shape gets fresh sizes.
 */
export declare function AgentPanesGrid({ layout, focusedPaneId, renderPane, onPaneMouseDownCapture, }: AgentPanesGridProps): import("react/jsx-runtime").JSX.Element | null;
export {};
