import { type HTMLAttributes } from 'react';
import { type DataTestId, type StylingProps, type WithChildren } from '@dynatrace/strato-components/core';
import type { PanelSize } from './Panel/types/shared-panel-types.js';
import type { PagePanelProps, PagePanelSizes } from './types/shared-page-types.js';
/**
* @public
*/
export interface DetailViewOwnProps extends WithChildren, Omit, 'onResize' | keyof StylingProps>, StylingProps, DataTestId {
/**
* The disired width of the detail view.
* Depending on the available screen width and other panel configurations,
* the size of the panel might not match the `preferredWidth` exactly.
* @defaultValue 25%
*/
preferredWidth?: PanelSize;
/**
* The minimum width of the detail view in pixels.
* @defaultValue 320
*/
minWidth?: number;
/**
* Screen size below which the overlay Drawer will be shown.
* @defaultValue 1280
*/
breakpoint?: number;
/**
* If the detail views width can be resized (by drag and drop)
* @defaultValue true
*/
resizable?: boolean;
/**
* Whether to keep the detail view content mounted even if the detail view
* is dismissed.
* @defaultValue false
*/
keepMounted?: boolean;
/**
* 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: PagePanelSizes, width: number) => void;
/**
* Notifies the user if an action happened that should change the dismissed state
* like clicking on the backdrop on mobile.
* The returned state is only a recommendation and might differ from what the actual
* state of the panel should be.
*/
onDismissChange?: (state: boolean, reason: string) => void;
}
/**
* @public
*/
export type DetailViewProps = DetailViewOwnProps & PagePanelProps;
/**
* The `DetailView` component is used inside the `Page` component for displaying content in the corresponding panel.
* @public
*/
export declare const DetailView: (props: DetailViewProps & import("react").RefAttributes) => React.ReactElement | null;