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;