/** A provenance-driven assignment of one parameter to each source object. */ export interface Decoration { readonly id: string; parameter(source: Source): Parameter; } export interface Decorated { readonly source: Source; readonly parameter: Parameter; } /** Evaluate a decoration while retaining the source provenance beside its parameter. */ export declare function applyDecoration(decoration: Decoration, sources: readonly Source[]): readonly Decorated[]; export interface DecorationEquivarianceGenerator { readonly id: string; actOnSource(source: Source): Source; actOnParameter(parameter: Parameter): Parameter; } export interface DecorationEquivarianceMismatch { readonly generator: string; readonly sourceIndex: number; readonly targetKey: string; readonly reason: 'missing-target' | 'parameter-mismatch'; } export interface DecorationEquivarianceReport { readonly decoration: string; readonly generatorCount: number; readonly sourceCount: number; readonly checked: number; readonly matched: number; readonly mismatches: readonly DecorationEquivarianceMismatch[]; readonly equivariant: boolean; } export interface DecorationEquivarianceOptions { readonly sources: readonly Source[]; readonly decoration: Decoration; readonly generators: readonly DecorationEquivarianceGenerator[]; /** Exact stable key for the finite source orbit. */ sourceKey(source: Source): string; /** Equality in the parameter representation; exact decorations should use exact equality. */ parameterEquals(left: Parameter, right: Parameter): boolean; } /** * Check `c(g·x) = g~·c(x)` on a finite source orbit. * * The source key turns every generator action into an explicit permutation. * Missing images and parameter failures are reported separately so a clipped * sample cannot masquerade as a failed intertwining law. */ export declare function checkDecorationEquivariance({ sources, decoration, generators, sourceKey, parameterEquals }: DecorationEquivarianceOptions): DecorationEquivarianceReport; //# sourceMappingURL=decoration.d.ts.map