import type { TapeSnapshot } from './types'; /** * Compute a fixed-width window of tape cells centered on the head. * * The engine's `Tape` class exposes a `viewport` getter that does this for * the live tape; `tapeViewport` is the equivalent for the wire-data * `TapeSnapshot` carried in `Frame.tape`. Cells outside the snapshot's * `symbols` array are padded with `blank`, so the result always has * exactly `width` entries. * * The returned `headIndex` is the head's index within `cells` — * deterministic at `Math.floor(width / 2)`, but exposed for callers that * want to avoid recomputing it (and to leave room for future non-centered * policies without a signature break). * * Pass the tape's blank symbol from `Snippet.alphabets[i]` (by convention * the first entry per tape in the visuals/engine pipeline — verify against * how the snippet was recorded). */ export declare function tapeViewport(snapshot: TapeSnapshot, width: number, blank: string): { cells: string[]; headIndex: number; };