import { Tree } from "@tsplus/stdlib/collections/Tree/definition"; import { Result } from "@tsplus/runtime/Result"; import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition"; import { Guard } from "@tsplus/runtime/Guard"; import { Brand } from "@tsplus/runtime/Brand"; import { Check, TypeLevel } from "@tsplus/stdlib/type-level"; import { List } from "@tsplus/stdlib/collections/List/definition"; import { ImmutableArray } from "@tsplus/stdlib/collections/ImmutableArray/definition"; import { Either } from "@tsplus/stdlib/data/Either/definition"; import { Maybe } from "@tsplus/stdlib/data/Maybe/definition"; export declare const ParseErrorId: unique symbol; export type ParseErrorId = typeof ParseErrorId; export declare namespace Decoder { interface Error { render: () => Tree; } } /** * @tsplus type Decoder * @tsplus derive nominal */ export interface Decoder { readonly decodeResult: (u: unknown) => Result; } /** * @tsplus type Decoder/Ops */ export interface DecoderOps { } export declare const Decoder: DecoderOps; /** * @tsplus static Decoder/Ops __call * @tsplus location "@tsplus/runtime/Decoder" */ export declare function make(decodeResult: (u: unknown) => Result): Decoder; export declare class DecodePayloadFailure { readonly error: Decoder.Error; readonly _tag = "DecodePayloadFailure"; constructor(error: Decoder.Error); get message(): string; } export declare class DecodeJsonFailure { readonly _tag = "DecodeJsonFailure"; get message(): string; } /** * @tsplus fluent Decoder decodeJSON * @tsplus location "@tsplus/runtime/Decoder" */ export declare function decodeJSON(decoder: Decoder, json: string): import("@tsplus/stdlib/data/Either").Either; /** * @tsplus fluent Decoder decode * @tsplus location "@tsplus/runtime/Decoder" */ export declare function decode(decoder: Decoder, value: unknown): import("@tsplus/stdlib/data/Either").Either; export declare class DecoderErrorPrimitive implements Decoder.Error { readonly value: unknown; readonly expectedType: string; constructor(value: unknown, expectedType: string); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorIsoDateInvalidString implements Decoder.Error { readonly value: string; constructor(value: string); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorIsoDateMalformed implements Decoder.Error { readonly value: unknown; constructor(value: unknown); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorLiteral implements Decoder.Error { readonly expected: string | number; readonly value: unknown; constructor(expected: string | number, value: unknown); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorNull implements Decoder.Error { readonly value: unknown; constructor(value: unknown); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorStructMissingField implements Decoder.Error { render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorStructFieldError implements Decoder.Error { readonly field: string; readonly fieldError: Decoder.Error; constructor(field: string, fieldError: Decoder.Error); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorStruct implements Decoder.Error { readonly fields: Chunk; constructor(fields: Chunk); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorTaggedMalformed implements Decoder.Error { readonly keys: string[]; constructor(keys: string[]); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorTaggedInner implements Decoder.Error { readonly tag: string; readonly error: Decoder.Error; constructor(tag: string, error: Decoder.Error); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorUnionMember implements Decoder.Error { readonly error: Decoder.Error; constructor(error: Decoder.Error); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorUnion implements Decoder.Error { readonly errors: Chunk; constructor(errors: Chunk); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorArray implements Decoder.Error { readonly errors: Chunk<[number, Decoder.Error]>; constructor(errors: Chunk<[number, Decoder.Error]>); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorValidation implements Decoder.Error { readonly errors: string[]; constructor(errors: string[]); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } /** * @tsplus implicit * @tsplus location "@tsplus/runtime/Decoder" */ export declare const _true: Decoder; /** * @tsplus implicit * @tsplus location "@tsplus/runtime/Decoder" */ export declare const _false: Decoder; /** * @tsplus implicit * @tsplus location "@tsplus/runtime/Decoder" */ export declare const boolean: Decoder; /** * @tsplus implicit * @tsplus location "@tsplus/runtime/Decoder" */ export declare const string: Decoder; /** * @tsplus implicit * @tsplus location "@tsplus/runtime/Decoder" */ export declare const number: Decoder; /** * @tsplus implicit * @tsplus location "@tsplus/runtime/Decoder" */ export declare const _null: Decoder; /** * @tsplus implicit * @tsplus location "@tsplus/runtime/Decoder" */ export declare const date: Decoder; /** * @tsplus derive Decoder lazy * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveLazy(fn: (_: Decoder) => Decoder): Decoder; /** * @tsplus derive Decoder<_> 10 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveNamed>(...[base]: Check> extends Check.False ? [ base: Decoder> ] : never): Decoder; /** * @tsplus derive Decoder<_> 10 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveValidation>(...[base, brands]: Check> extends Check.True ? [ base: Decoder>, brands: { [k in (keyof A[Brand.valid]) & string]: Brand.Validation; } ] : never): Decoder; /** * @tsplus derive Decoder[Chunk]<_> 10 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveChunk>(...[array]: [A] extends [Chunk] ? Check>> extends Check.True ? [array: Decoder>] : never : never): Decoder; /** * @tsplus derive Decoder[List]<_> 10 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveList>(...[array]: [A] extends [List] ? Check>> extends Check.True ? [array: Decoder>] : never : never): Decoder; /** * @tsplus derive Decoder[ImmutableArray]<_> 10 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveImmutableArray>(...[array]: [A] extends [ImmutableArray] ? Check>> extends Check.True ? [array: Decoder>] : never : never): Decoder; /** * @tsplus derive Decoder[Array]<_> 10 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveArray>(...[element]: [A] extends [Array] ? Check>> extends Check.True ? [element: Decoder<_A>] : never : never): Decoder; /** * @tsplus derive Decoder[Either]<_> 10 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveEither>(...[left, right]: [A] extends [Either] ? [left: Decoder<_E>, right: Decoder<_A>] : never): Decoder; /** * @tsplus derive Decoder[Maybe]<_> 10 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveMaybe>(...[value]: [A] extends [Maybe] ? [value: Decoder<_A>] : never): Decoder; export declare class DecoderErrorRecordValue implements Decoder.Error { readonly key: string; readonly error: Decoder.Error; constructor(key: string, error: Decoder.Error); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorRecordFields implements Decoder.Error { readonly fields: Chunk; constructor(fields: Chunk); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } export declare class DecoderErrorRecordMissingKeys implements Decoder.Error { readonly missing: Chunk; constructor(missing: Chunk); render: () => import("@tsplus/stdlib/collections/Tree").Tree; } /** * @tsplus derive Decoder<_> 10 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveEmptyRecord(..._: Check> extends Check.True ? [] : never): Decoder; /** * @tsplus derive Decoder<_> 15 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveDictionary>(...[value]: Check> extends Check.True ? [value: Decoder] : never): Decoder; /** * @tsplus derive Decoder<_> 15 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveRecord>(...[value, requiredKeys]: Check> extends Check.True ? [ value: Decoder, requiredKeys: { [k in keyof A]: 0; } ] : never): Decoder; /** * @tsplus derive Decoder<_> 20 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveLiteral(...[value]: Check & Check.Not>> extends Check.True ? [value: A] : never): Decoder; /** * @tsplus derive Decoder<_> 20 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveStruct>(...[requiredFields, optionalFields]: Check> extends Check.True ? [ ...[ requiredFields: { [k in TypeLevel.RequiredKeys]: Decoder; } ], ...([TypeLevel.OptionalKeys] extends [never] ? [] : [ optionalFields: { [k in TypeLevel.OptionalKeys]: Decoder>; } ]) ] : never): Decoder; /** * @tsplus derive Decoder<_> 20 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveTagged(...[elements]: Check> extends Check.True ? [ elements: { [k in A["_tag"]]: Decoder>; } ] : never): Decoder; /** * @tsplus derive Decoder<|> 30 * @tsplus location "@tsplus/runtime/Decoder" */ export declare function deriveUnion(...elements: { [k in keyof A]: Decoder; }): Decoder; //# sourceMappingURL=Decoder.d.ts.map