/**
 * @jsxRuntime classic
 * @jsx jsx
 */
import { type Key, type MutableRefObject, type ReactNode } from 'react';
import type { LayoutAreaMode, LayoutAreaState } from './layout-area-sizing-context';
import type { PanelResizeEnd } from './panel-layout';
import type { ResizeBounds } from './panel-splitter/types';
type LocalPanelSurfaceProps = {
    children: ReactNode;
    contentKey?: Key;
    label: string;
    resizeLabel: string;
    defaultWidth: number;
    minWidth: number;
    maxWidth?: number;
    testId?: string;
    layoutRef: MutableRefObject<HTMLDivElement | null>;
    managedSizing?: LayoutAreaState;
    getManagedResizeBounds: () => ResizeBounds | undefined;
    prepareResize?: () => Promise<boolean>;
    onManagedResizeStart: (mode: LayoutAreaMode) => void;
    onManagedResize: (mode: LayoutAreaMode, width: number) => void;
    onManagedResizeEnd: (mode: LayoutAreaMode, width: number) => void;
    onWidthChange: (width: number) => void;
    onResizeEnd: (event: PanelResizeEnd) => void;
};
/**
 * Internal surface for PanelLayout. The host supplies content; navigation owns its geometry.
 */
export declare function LocalPanelSurface({ children, contentKey, label, resizeLabel, defaultWidth, minWidth, maxWidth, testId, layoutRef, managedSizing, getManagedResizeBounds, prepareResize, onManagedResizeStart, onManagedResize, onManagedResizeEnd, onWidthChange, onResizeEnd, }: LocalPanelSurfaceProps): JSX.Element;
export {};
