import { type ReactNode, type RefObject } from "react"; /** * THE REGISTER'S FOLD, between `Table` and the `Row` its name's cell draws: a column the width could not * seat reads on that row's line as its label and the row's value. Unpublished: a register states its * columns, never a fold. */ /** A column this width could not seat, read on the row's name's cell. */ export interface FoldedReading { key: string; label: string; /** The value names itself (a status, a person, a linked row), so it rides the line without its label. */ bare?: boolean; /** It needs action now — a deadline past or close — so it leads the line, ahead of the row's own words, * where the line's ellipsis never reaches it. */ urgent?: boolean; /** It is what the row is scanned for (a phone's one reading), where seating it would cut the name: it follows * what needs action now, ahead of the row's own words. */ scanned?: boolean; /** It is a picture — a stack of thumbnails — which cannot be cut as words are: it leads the line, whole, where * the line's ellipsis never reaches it. */ mark?: boolean; value: ReactNode; /** What it adds after itself only while the line has room — a deadline's day after its countdown. */ detail?: ReactNode; } /** What a row's name's cell carries for the columns the fit folded, and how the row drawn in it says it * seats them itself. */ export interface TableFold { readings: readonly FoldedReading[]; /** A phone's row of two lines: the name's cell, whose width the name's line and body run across — under the * reading beside the name, which keeps to the title's line — so neither is held to the name's width. */ reach: RefObject | null; /** Registers a row that draws the readings on its own line; the cleanup releases it. */ claim: () => () => void; } export declare const TableFoldContext: import("react").Context; export declare const NO_FOLDS: readonly FoldedReading[]; /** Null outside a register's name's cell, and inside a row that already seated the readings. */ export declare function useTableFold(): TableFold | null; /** Hands a row's descendants no fold, so a row nested in the one that seated them does not repeat them. */ export declare function TableFoldBoundary({ children }: { children: ReactNode; }): import("react").JSX.Element;