import type { Visit } from './anamnesis-types'; /** One rendered column. `index` is the position in the FULL visit array, so * the grid still reads the cell whose delta was computed there. */ export interface VisitColumn { key: string; visit: Visit; index: number; } export interface VisitWindow { columns: VisitColumn[]; shownCount: number; totalCount: number; hiddenCount: number; /** First / last date among the SHOWN columns, in record order (never * re-sorted). Null when nothing is shown. */ firstIso: string | null; lastIso: string | null; } export interface VisitWindowOptions { /** Ids rendered in every window and EXCLUDED from the counts — the merged * baseline. "Showing N of M" counts only what the picker can toggle. */ alwaysShowIds?: Iterable; } /** The selection the picker opens on: every visit, in record order. Empty * on an empty record. Also the export's fallback when a host passed no * selection, so a file with no mirrored picker matches the on-screen default. */ export declare function defaultSelectedVisitIds(visits: readonly Visit[]): string[]; /** Resolve which visit columns render, in RECORD order — never in the order * the reader happened to tick them. Safe on an empty record, a single-visit * record, same-date visits and out-of-order visits. */ export declare function windowVisits(visits: readonly Visit[], selectedIds: Iterable, options?: VisitWindowOptions): VisitWindow; /** Every visit as its own column — the unwindowed default. */ export declare function allVisitColumns(visits: readonly Visit[]): VisitColumn[]; /** Whether the picker has more than one visit to offer. With one visit it is * chrome the clinician has to read and cannot use, so the toolbar leaves it * out entirely. */ export declare function visitPickerIsUseful(visits: readonly Visit[]): boolean; //# sourceMappingURL=anamnesis-window.d.ts.map