/// import { IJsonSerializable } from '../../serde'; import { IDatabaseEncoding } from './types'; export declare class JsonEncoding implements IDatabaseEncoding { serialize: (value: T) => Buffer; deserialize: (buffer: Buffer) => T; } export declare class StringEncoding implements IDatabaseEncoding { serialize: (value: TValues) => Buffer; deserialize: (buffer: Buffer) => TValues; } export declare class U32Encoding implements IDatabaseEncoding { serialize(value: number): Buffer; deserialize(buffer: Buffer): number; } export declare class U32EncodingBE implements IDatabaseEncoding { serialize(value: number): Buffer; deserialize(buffer: Buffer): number; } export declare class NullEncoding implements IDatabaseEncoding { static EMPTY_BUFFER: Buffer; serialize(): Buffer; deserialize(): null; } export declare class BufferEncoding implements IDatabaseEncoding { serialize: (value: Buffer) => Buffer; deserialize: (buffer: Buffer) => Buffer; } export declare class PrefixSizeError extends Error { name: string; } export declare class PrefixEncoding implements IDatabaseEncoding<[TPrefix, TKey]> { readonly keyEncoding: IDatabaseEncoding; readonly prefixEncoding: IDatabaseEncoding; readonly prefixSize: number; constructor(prefixEncoding: IDatabaseEncoding, keyEncoding: IDatabaseEncoding, prefixSize: number); serialize: (value: [TPrefix, TKey]) => Buffer; deserialize: (buffer: Buffer) => [TPrefix, TKey]; } type WrapDatabaseEncoding = { [Index in keyof Tuple]: IDatabaseEncoding; }; type WrapDatabaseEncodingInLength = { [Index in keyof Tuple]: [Tuple[Index], number]; } & { length: number; }; export declare class PrefixArrayEncoding = WrapDatabaseEncoding> implements IDatabaseEncoding<[...rest: TValues]> { readonly encoders: WrapDatabaseEncodingInLength; constructor(encoders: WrapDatabaseEncodingInLength); serialize: (values: TValues) => Buffer; deserialize: (buffer: Buffer) => TValues; } export declare class NullableBufferEncoding implements IDatabaseEncoding { serialize: (value: Buffer | null) => Buffer; deserialize(buffer: Buffer): Buffer | null; } export declare class StringHashEncoding implements IDatabaseEncoding { serialize(value: string): Buffer; deserialize(buffer: Buffer): string; } export declare class NullableStringEncoding implements IDatabaseEncoding { serialize(value: string | null): Buffer; deserialize(buffer: Buffer): string | null; } export declare class ArrayEncoding extends JsonEncoding { } export declare class BigIntLEEncoding implements IDatabaseEncoding { serialize(value: bigint): Buffer; deserialize(buffer: Buffer): bigint; } export declare class BigU64BEEncoding implements IDatabaseEncoding { serialize(value: bigint): Buffer; deserialize(buffer: Buffer): bigint; } export declare class U64Encoding implements IDatabaseEncoding { serialize(value: number): Buffer; deserialize(buffer: Buffer): number; } export declare class BufferToStringEncoding { static serialize(element: Buffer): string; static deserialize(data: string): Buffer; } export declare const BUFFER_ENCODING: BufferEncoding; export declare const U32_ENCODING: U32Encoding; export declare const U32_ENCODING_BE: U32EncodingBE; export declare const NULL_ENCODING: NullEncoding; export declare const U64_ENCODING: U64Encoding; export declare const BIG_U64_BE_ENCODING: BigU64BEEncoding; export {}; //# sourceMappingURL=encoding.d.ts.map