/** * The explorer's directory body: the empty-state ladder, the card grid and the * scrolling table (folders sorted above items in both), and the page footer. The * pagination MATH lives in `ExplorerView`; this renders the result. */ import type { ReactNode } from 'react'; import type { ExplorerColumn, ExplorerEmptyStates } from './explorer-view'; import { type Folder } from './folder-nav'; import { type OpenTargetProps } from './open-target'; import type { ViewMode } from './view-toggle'; /** One page entry: a subfolder (sorted first) or a filtered item, in one array. */ export type ExplorerEntry = { readonly kind: 'folder'; readonly folder: Folder; } | { readonly kind: 'item'; readonly item: T; }; interface ExplorerPagerProps { readonly label: string; readonly pageStart: number; readonly pageSize: number; readonly total: number; readonly effectivePage: number; readonly pageCount: number; readonly onPageChange: (page: number) => void; readonly onPageSizeChange: (size: number) => void; } export interface ExplorerBodyProps { readonly hasEntries: boolean; /** Items in the current folder before filtering, so the empty ladder can tell * "filter emptied it" (>0 → no-match) from "genuinely empty". */ readonly inFolderCount: number; readonly emptyStates: ExplorerEmptyStates; readonly viewMode: ViewMode; readonly label: string; readonly columns: readonly ExplorerColumn[]; readonly pageEntries: readonly ExplorerEntry[]; readonly getItemKey: (item: T) => string; readonly renderRow: (item: T) => ReactNode; readonly renderCard: (item: T) => ReactNode; readonly openProps: (item: T) => OpenTargetProps; readonly onNavigate: (folderId: string | null) => void; readonly renderFolderActions: ((folder: Folder) => ReactNode) | undefined; readonly pager: ExplorerPagerProps; } export declare function ExplorerBody(props: ExplorerBodyProps): ReactNode; export {}; //# sourceMappingURL=explorer-body.d.ts.map