import { type HTMLAttributes } from 'react';
import { type DataTestId, type StylingProps, type WithChildren } from '@dynatrace/strato-components/core';
import type { DismissOptions, PanelSize, PanelSizes } from './types/shared-panel-types.js';
/** @internal */
export interface PanelProps extends WithChildren, Omit, 'onResize' | keyof StylingProps>, StylingProps, DataTestId {
/** PanelName */
name: string;
/** The preferred width of the panel in px or %. */
preferredWidth?: PanelSize;
/** The minimum width the panel should have in pixels. */
minWidth?: number;
/** If the panel should be resizable. */
resizable?: boolean;
/**
* If the panel should be dismissible.
* @defaultValue 'left'
*/
dismissible?: DismissOptions;
/**
* The order of the panels.
* Needed for sorting the panels to ensure correct resizing behaviour.
* If e.g. the page is not unmounted when navigating between routes, the 'main'
* panel might be added before the 'sidebar' panel.
* With the 'order' prop, we can still sort them correctly.
*/
order: number;
/**
* Callback triggered after resizing is finished with the new panel sizes of
* all existing panels and the newly applied panel width (in px).
*/
onResize?: (sizes: PanelSizes, width: number) => void;
}
/**
* The `Panel` component adds a panel to the `ParentPanel`. The panel can be rendered
* conditionally and can have a variety of configurations to e.g. give it a preferred width.
* @internal
*/
export declare const Panel: (props: PanelProps & import("react").RefAttributes) => React.ReactElement | null;