import type { ScalarCodec } from "./ifaces"; import type { Codecs } from "./codecs"; export type CodecValueType = S extends Codecs.KnownCodecs[keyof Codecs.KnownCodecs] ? S extends Codecs.Codec ? T : never : never; export type MutableCodecMap = Map; export type ReadonlyCodecMap = ReadonlyMap; type ContainerNames = keyof Codecs.ContainerCodecs; type ContainerOverload = Codecs.ContainerCodecs[T] | undefined; export declare class CodecContext { private readonly spec; private readonly map; constructor(spec: ReadonlyCodecMap | null); private initCodec; getContainerOverload(kind: T): ContainerOverload; hasOverload(codec: ScalarCodec): boolean; postDecode(codec: ScalarCodec, value: CodecValueType): any; preEncode(codec: ScalarCodec, value: any): CodecValueType; } export declare const NOOP_CODEC_CONTEXT: CodecContext; export {};