/** Where each W-window of one source first occurs. Built once per source and * reused across every form asked against it. */ export type WindowIndex = Map; export declare function windowIndex(bytes: Uint8Array, W: number): WindowIndex; /** The windows of `index` (over `bytes`) that `spoken` does not hold — what * of the question no product of the derivation has restated yet. The keys * keep their positions in `bytes`, so a witnessing span still names the * asker's bytes. */ export declare function unspoken(index: WindowIndex, spoken: ReadonlyArray): WindowIndex; /** How a form is witnessed by a list of sources. */ export interface Witnessing { /** Every byte of the form lies in a window some source holds. */ complete: boolean; /** The windows SOURCE 0 alone supplied — windows no later source holds — as * merged spans of source 0. With the question as source 0, this is what the * asker said about the form that the derivation did not already have. */ spans: Array<[number, number]>; /** Bytes of source 0 inside `spans`. */ bytes: number; /** The form's own bytes no source witnesses, as merged spans of the FORM — * empty exactly when `complete`. ONE residue span is the shape of a * co-instance: the same frame around a different filler (`When was Peter * Jackson born?` read against `When was the director of film Jinpa * born?` leaves `Peter Jackson`). */ residue: Array<[number, number]>; } /** Witness `form` against `sources` (their window indexes, same order). A * window is credited to the LAST source holding it — so source 0 is credited * only with what nothing else at hand supplies. */ export declare function witness(form: Uint8Array, indexes: ReadonlyArray, W: number): Witnessing;