import React from 'react'; interface DetailRenderInfo { detailRows: number; } /** * Generic two-pane shell shared by every panel that has a windowed list * on top and a detail pane below. Panels keep their own selection state * and detail rendering; the shell owns the layout invariant (windowing, * overflow indicators, separator) so it lives in one place. */ export interface MasterDetailPanelProps { items: T[]; selectedIndex: number; height?: number; visibleRows: number; renderHeader: () => React.ReactNode; renderRow: (item: T, selected: boolean, absoluteIndex: number) => React.ReactNode; rowKey: (item: T, absoluteIndex: number) => string; detail: React.ReactNode | ((info: DetailRenderInfo) => React.ReactNode); } export declare const MasterDetailPanel: (props: MasterDetailPanelProps) => React.ReactElement; export {};