/** What a version shows, and where along the roll its symbols lie. */ import { Edition } from "../model/Edition.js"; import { FeatureOrPatch, HorizontalSpan, NestedFeature } from "../model/Feature.js"; import { AnySymbol } from "../model/Symbol.js"; import { Millimeters } from "../model/Quantity.js"; /** * The features carrying the symbol, on whichever copy they sit, those a * patch bears included. A carrier the edition holds no feature for is * left out. * @category Lookups */ export declare const carriersOf: (edition: Pick, symbol: AnySymbol) => Readonly[]; /** * The carriers that state a place of their own, which a feature on a patch does not. * @category Lookups */ export declare const placedCarriersOf: (edition: Pick, symbol: AnySymbol) => Readonly[]; /** * Where along the roll the symbol lies, as its carriers put it, or * nothing for a symbol no copy carries. * * Either end is the median of the carriers' rather than their mean, so * that a copy which puts the symbol well away from the rest, torn, * stretched or badly aligned there, does not draw it away from where * the others agree it lies. Two carriers have the two alike. * * Only the place is measured. Which track the symbol sits on is not * a measurement but a question for a tracker bar, since a note of * one pitch sits on exactly one position of a given bar: ask * `bar.positionOf`. The carriers cannot answer it, because a copy * cut for another system numbers its tracks differently, and one * symbol may be carried by copies of both — averaging a red carrier * on track 47 with a green one on 45 would give 46, a legal * position a semitone away on either bar. * @category Lookups */ export declare const placeOf: (edition: Pick, symbol: AnySymbol) => Readonly | undefined; /** * Where the symbol begins, as the median onset of its carriers, or nothing for a symbol without a place. * @category Lookups */ export declare const onsetOf: (edition: Pick, symbol: AnySymbol) => Millimeters | undefined; /** * The symbols the version shows: what it and its ancestors insert, * each version's deletions striking what it or its ancestors inserted. * They are worked out once for each state of the edition, and the list * is frozen, since everyone who asks is handed the same one. * @category Lookups */ export declare const snapshotOf: (edition: Edition, versionId: string) => readonly Readonly[];