export interface Codec { pack: (packable: Packable) => Packed; unpack: (unpackable: Unpackable) => Unpacked; } export type AnyCodec = Codec; export type PackResult = T extends Codec ? Packed : never; export type PackParam = T extends Codec ? Packable : never; export type UnpackResult = T extends Codec ? Unpacked : never; export type UnpackParam = T extends Codec ? Unpackable : never; export type Uint8ArrayCodec = Codec; export type BytesLike = ArrayLike | ArrayBuffer | string; export type BytesCodec = Codec; /** * Create a codec to deal with bytes-like data. * @param codec */ export declare function createBytesCodec(codec: Uint8ArrayCodec): BytesCodec; export type Fixed = { readonly __isFixedCodec__: true; readonly byteLength: number; }; export type FixedBytesCodec = BytesCodec & Fixed; export declare function isFixedCodec(codec: BytesCodec): codec is FixedBytesCodec; export declare function createFixedBytesCodec(codec: Uint8ArrayCodec & { byteLength: number; }): FixedBytesCodec; //# sourceMappingURL=base.d.ts.map