import { type HTMLAttributes } from 'react';
import type { ControlledPagePanelProps, PagePanelSizes, UncontrolledPagePanelProps } from './page-types.js';
import type { PanelSize } from './panel-types.js';
import type { DataTestId } from '../../core/types/data-props.js';
import type { StylingProps } from '../../core/types/styling-props.js';
import type { WithChildren } from '../../core/types/with-children.js';
/** @public */
export interface DetailViewOwnProps extends WithChildren, Omit, 'onResize' | keyof StylingProps>, StylingProps, DataTestId {
/**
* 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;
/**
* The minimum width of the sidebar in pixels.
* @defaultValue 200
*/
minWidth?: number;
/**
* Screen size below which the overlay Drawer will be shown.
* @defaultValue 640
*/
breakpoint?: number;
/**
* If the sidebar's width can be resized (by drag and drop)
* @defaultValue true
*/
resizable?: boolean;
/**
* Defines if the Sidebar content will be kept in the DOM, even if the content
* is not shown to the user.
* @defaultValue false
*/
keepMounted?: boolean;
/**
* 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;
/**
* 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;
}
/** @public */
export interface ControlledDetailViewProps extends DetailViewOwnProps, ControlledPagePanelProps {
}
/** @public */
export interface UncontrolledDetailViewProps extends DetailViewOwnProps, UncontrolledPagePanelProps {
}
/** @public */
export type DetailViewProps = ControlledDetailViewProps | UncontrolledDetailViewProps;
/**
* 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) => import("react").ReactElement | null;