import { type HTMLAttributes } from 'react';
import type { PanelName } from './page-types.js';
import type { PanelSize } from './panel-types.js';
import { StylingProps } from '../../core/types/styling-props.js';
import { WithChildren } from '../../core/types/with-children.js';
interface PanelRootProps extends WithChildren, StylingProps, HTMLAttributes {
name: PanelName;
}
interface PanelContentProps extends WithChildren, StylingProps {
isDismissed?: boolean;
/** @defaultValue `right` */
handle?: 'left' | 'right' | 'hidden';
/** Descriptive label for the panel. */
label: string;
/**
* The minimum width of the sidebar in pixels.
* @defaultValue 200
*/
minWidth?: number;
/**
* The desired width of the sidebar.
* Depending on the available screen width and other panel configurations,
* the size of the panel might not match the `preferredWidth` exactly.
* @defaultValue 15%
*/
preferredWidth?: PanelSize;
/** Callback triggered after resizing is finished. */
onResize?: (width: number) => void;
/** Available size of the containing element. Used to calculate size with relative units. */
containerSize: number;
}
export declare const Panel: ((props: PanelRootProps) => import("react/jsx-runtime").JSX.Element) & {
Content: (props: PanelContentProps & import("react").RefAttributes) => import("react").ReactElement | null;
};
export {};