import { AutoEncoder } from './AutoEncoder.js'; import { Data } from './Data.js'; import { PlainObject } from './Encodeable.js'; import { EncodeContext } from './EncodeContext.js'; export interface Decoder { decode(data: Data): T; decodeField?(data: unknown, context: EncodeContext, currentField?: string): T; /** * Optionanl custom encoder */ encode?(data: T, context: EncodeContext): PlainObject; /** * Optiona */ getDefaultValue?(): T | undefined; isDefaultValue?(value: unknown): boolean; } export type DecodedType = D extends typeof AutoEncoder ? InstanceType : (D extends Decoder ? C : never); //# sourceMappingURL=Decoder.d.ts.map