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;