import type { RepresentationLineageN, RepresentationMapRecipeN } from './map.js'; /** Independent quality of one map operation encoded by a recipe. */ export type RepresentationCapabilityLevel = 'exact' | 'conditional' | 'approximate' | 'record-dependent' | 'unavailable'; /** Whether source identity passes through directly or through retained records. */ export type RepresentationSourceIdentityCapability = 'preserved' | 'recorded' | 'unavailable'; /** * Capability facts for one discriminated representation recipe. * * These fields remain independent deliberately: an orthographic projection * has an exact inverse fibre but no unique point lift, while an affine slice * chart has an exact point lift and no non-trivial inverse fibre. */ export interface RepresentationMapCapabilitiesN { readonly pointForward: RepresentationCapabilityLevel; readonly pointLift: RepresentationCapabilityLevel; readonly inverseFibre: RepresentationCapabilityLevel; readonly attributeTransport: RepresentationCapabilityLevel; readonly sourceIdentity: RepresentationSourceIdentityCapability; } /** Capability record pinned to one landed recipe kind. */ export declare function representationMapCapabilitiesN(recipe: RepresentationMapRecipeN): RepresentationMapCapabilitiesN; /** * The exported symbol that performs a capability, and where it is exported from. * * `symbol` is a bare function name, or `Class.method` for a method verb. */ export interface RepresentationCapabilityVerbN { /** Exported name, or `Class.method` where the verb is a method. */ readonly symbol: string; /** Package the symbol is exported from, as an import specifier. */ readonly module: string; } /** * Which symbol performs each capability, or `undefined` where none is named. * * A capability level says an operation is possible; it does not say what * performs it, and the two are not the same fact. `pointLift: 'exact'` on an * affine slice chart is satisfied by `HyperplaneSlice4.embedPoint`, which lives * in another module under a name sharing no vocabulary with the capability — so * a caller who reads this module end to end learns that the lift exists and not * that it ships. Naming the verb here closes the distance, and a test asserts * every name below still resolves on the public surface, so the pointer cannot * rot into a lie the way a comment would. * * `undefined` means either that the capability is `unavailable` for the recipe, * or that no single exported symbol has been identified as performing it. The * second case is deliberately not hidden: `attributeTransport` is declared at * `exact` for several recipes and no verb anywhere in the package is named for * it, which is a real gap rather than an omission in this table. */ export interface RepresentationMapCapabilityVerbsN { /** Takes a source point to its representation. */ readonly pointForward: RepresentationCapabilityVerbN | undefined; /** Takes a representation point back to a source point. */ readonly pointLift: RepresentationCapabilityVerbN | undefined; /** Enumerates the source set collapsing onto one representation point. */ readonly inverseFibre: RepresentationCapabilityVerbN | undefined; /** Carries per-vertex attributes across the map. No verb ships for this. */ readonly attributeTransport: RepresentationCapabilityVerbN | undefined; /** Names the source cell a representation element came from. */ readonly sourceIdentity: RepresentationCapabilityVerbN | undefined; } /** The symbol performing each capability of one recipe kind. */ export declare function representationMapCapabilityVerbsN(recipe: RepresentationMapRecipeN): RepresentationMapCapabilityVerbsN; /** Compose quality monotonically across an ordered lineage. */ export declare function representationLineageCapabilitiesN(lineage: RepresentationLineageN): RepresentationMapCapabilitiesN; //# sourceMappingURL=map-capabilities.d.ts.map