/**
 * search/served — what the MODEL reads for `checked: 'declared'` once the
 * funnel has composed it.
 *
 * Pattern: one pure projection.
 * Role:    semantics/ layer, pure.
 * Emits:   N/A.
 *
 * The typed fields and one static note — no new sentence. `checked` becomes
 * the composed items (each `what` plus its typed fields); the gaps the model
 * can act on ride `not_checked` / `cannot_cover` as plain items. Kept OFF what
 * the model reads, and on the record only:
 *
 *   • `complete` — a bare `true` beside "nothing found" invites "that's all
 *     there is"; the claim checker reads it from the row;
 *   • the `said` words (a checker's vocabulary) and `quote` (a statement
 *     writer's mark);
 *   • a long list's values — a 500-id population is served as ONE item, its
 *     count and the first {@link LIST_SHOWN} values quoted, so an empty
 *     result never costs the model a 50 KB message. The row keeps every value.
 *
 * An absence is served {@link ABSENCE_NOTE_COMPOSED}, not `ABSENCE_NOTE`: the
 * latter says "nothing was substituted for what was asked", which a declared
 * default — or an argument-unsent gap served beside it — contradicts. The
 * result is an ordinary absence (or ledger): every reader that predates
 * `search` reads it as one.
 */
import type { ComposedItem } from '../composedCoverage.js';
import type { CoveredResult, CoverageItem, DeclaredCoveredResult, DeclaredToolAbsence, ToolAbsence } from '../types.js';
/** A list longer than this is served as one item: its count and the first few values. */
export declare const LIST_SERVED_WHOLE = 5;
/** How many values of a collapsed list are shown. */
export declare const LIST_SHOWN = 3;
/** One composed item as the model reads it — the record-only marks removed. */
export declare function servedItem(item: ComposedItem): Record<string, unknown>;
/**
 * The composed items as the model reads them: a run of more than
 * {@link LIST_SERVED_WHOLE} population items from one argument (a list sent)
 * becomes one item with its count.
 */
export declare function servedItems(items: readonly ComposedItem[]): Record<string, unknown>[];
/** The two plain lists composition writes beside `checked`. */
interface PlainLists {
    readonly notChecked: readonly CoverageItem[];
    readonly cannotCover: readonly CoverageItem[];
}
/** The composed ledger — `coverage(rows, { checked: 'declared' })` — with its result untouched. */
export declare function servedLedger(ledger: DeclaredCoveredResult, checked: readonly ComposedItem[], lists: PlainLists): CoveredResult;
/** The composed absence, keys in the order the tool minted them, with the composed note. */
export declare function servedAbsence(absence: DeclaredToolAbsence, checked: readonly ComposedItem[], lists: PlainLists): ToolAbsence;
export {};
//# sourceMappingURL=served.d.ts.map