/** * Registry for AnyPublicKey and AnySignature variant handlers. * * This allows keyless (and future) variants to register themselves at runtime, * so that singleKey.ts does not need a compile-time dependency on keyless/poseidon. * When the keyless module is imported, it registers its deserializers and instanceof * checkers here. If keyless is never imported, these variants remain unregistered * and deserialization will throw a clear error. */ import type { Deserializer } from "../../bcs/deserializer.js"; import type { PublicKey } from "./publicKey.js"; import type { Signature } from "./signature.js"; export type PublicKeyDeserializer = (deserializer: Deserializer) => PublicKey; export type SignatureDeserializer = (deserializer: Deserializer) => Signature; export type VariantDetector = (key: PublicKey) => number | undefined; export type SignatureVariantDetector = (sig: Signature) => number | undefined; /** * Register a deserializer for a public key variant. * Called by modules that define new AnyPublicKey variants (e.g., keyless). */ export declare function registerPublicKeyVariant(variant: number, deserializer: PublicKeyDeserializer, detector: VariantDetector): void; /** * Register a deserializer for a signature variant. * Called by modules that define new AnySignature variants (e.g., keyless). */ export declare function registerSignatureVariant(variant: number, deserializer: SignatureDeserializer, detector: SignatureVariantDetector): void; /** * Look up a registered public key deserializer by variant index. */ export declare function getPublicKeyDeserializer(variant: number): PublicKeyDeserializer | undefined; /** * Look up a registered signature deserializer by variant index. */ export declare function getSignatureDeserializer(variant: number): SignatureDeserializer | undefined; /** * Detect the variant for a public key using registered detectors. * Returns the variant number, or undefined if no detector matches. */ export declare function detectPublicKeyVariant(key: PublicKey): number | undefined; /** * Detect the variant for a signature using registered detectors. * Returns the variant number, or undefined if no detector matches. */ export declare function detectSignatureVariant(sig: Signature): number | undefined; //# sourceMappingURL=anyKeyRegistry.d.ts.map