import Maybe from '../../Maybe'; interface List { (listOfValues: Array): Value; (encoder: (value: T) => Value, list: Array): Value; } interface Obj { (objectOfValues: { [key: string]: Value; }): Value; (listOfKeyValues: Array<[string, Value]>): Value; (objectOfOptionalValues: { [key: string]: Maybe; }): Value; (listOfOptionalKeyValues: Array<[string, Maybe]>): Value; } export declare namespace Encode { interface Value { encode(indent: number): string; serialize(): unknown; tap(fn: (value: Value) => R): R; } const nill: Value; const string: (string: string) => Value; const number: (number: number) => Value; const boolean: (boolean: boolean) => Value; const nullable: (encoder: (value: T) => Value, maybe: Maybe) => Value; const list: List; const object: Obj; } export declare type Value = Encode.Value; export declare const nill: Encode.Value; export declare const string: (string: string) => Encode.Value; export declare const number: (number: number) => Encode.Value; export declare const boolean: (boolean: boolean) => Encode.Value; export declare const nullable: (encoder: (value: T) => Encode.Value, maybe: Maybe) => Encode.Value; export declare const list: List; export declare const object: Obj; export default Encode;