import { type LeadMark, type MarkSize } from "./mark"; /** * A LIST'S LEADS, stated by `Table` or `FileRows` to each `Row.Lead picture` in it: the ONE slot every lead of the * list stands in (`leadSlot`) — a picture's where any row holds a picture or a document, a face's where none does or * a phone's name needs the room — so the titles start at one x; whether a lead holds a picture or a document, beside * which alone a row's picture not held is drawn (`pictured`); and the `hold` each lead reports its mark through. */ export interface ListLeads { slot: MarkSize; pictured: boolean; /** Every lead is a picture not held, so none is drawn: the list keeps no slot, its names at the row's edge. */ vacant: boolean; hold: (mark: LeadMark) => () => void; } export declare const ListLeadsContext: import("react").Context; /** The list's leads as they mount: how many, how many are tiles, how many a picture not held, and the `hold` each * reports through. */ export declare function useLeadCount(): { held: number; tiled: number; lacking: number; hold: ListLeads["hold"]; }; /** A list's leads off its count, standing in `slot` — `leadSlot`'s unless a phone stepped it down. */ export declare function listLeads(count: ReturnType, slot?: MarkSize): ListLeads; /** * THE LINES A PLACE BUDGETS WHAT IT HOLDS TO — a register's column (`TableColumn.lines`), a row's supporting line * (one) — stated by `Table`'s cell and `Row.Line` to what they draw. Absent — a row's body, a fact, a panel — * nothing is held to a line. Unpublished. */ export declare const CellLinesContext: import("react").Context<1 | 2 | undefined>; /** * The block a row's lead identifies, stated by `Row.Lead` — and `datum` by a chart's datum (`DatumLead`), its name * on a line of words — so an unsized mark takes that rung (`useLeadRung`), and a row's picture its list's slot * (`list`, null outside one). Unpublished: a caller may not claim a block no text stands. */ export declare const LeadBlockContext: import("react").Context<{ block: "datum" | "name" | "pair"; dense: boolean; picture: boolean; list: ListLeads | null; } | null>; /** * An unsized mark's rung, read off the lead it stands in. In a row's picture a mark stands in its list's slot at its * natural size (`markInSlot`) and reports what it is; a lone row's slot is what its mark needs. A thing floors only * inside a row, where it is the content. A mark its caller sized (`stated`) answers no lead. */ export declare function useLeadRung(thing: boolean, mark: LeadMark, stated?: MarkSize): MarkSize; /** Whether a picture not held is drawn where it stands: in a list, only beside a lead holding a picture or a * document, so it marks which rows lack one. */ export declare function useLackingDrawn(): boolean;