import { Chunk } from "@fp-ts/data/Chunk"; import { Case } from "@effect-ts/system/Case"; export interface Actual { readonly actual: A; } export interface SingleE { readonly error: E; } export interface CompoundE { readonly errors: Chunk; } export type SchemaError = LeafE | RefinementE> | RequiredKeyE> | OptionalKeyE> | StructE> | PrevE> | NextE> | CompositionE> | MissingKeysE | OptionalIndexE> | CollectionE> | NamedE> | IntersectionE> | UnionE> | MemberE>; export interface LeafErrors { ParseStringE: ParseStringE; ParseNumberE: ParseNumberE; ParseObjectE: ParseObjectE; ParseDateE: ParseDateE; ParseDateMsE: ParseDateMsE; ParseBoolE: ParseBoolE; ParseUuidE: ParseUuidE; InvalidIntegerE: InvalidIntegerE; PositiveE: PositiveE; UnknownRecordE: UnknownRecordE; LiteralE: LiteralE; NonEmptyE: NonEmptyE; UnknownArrayE: UnknownArrayE; TaggedUnionExtractKeyE: ExtractKeyE; } export type LeafError = Extract; export declare const defaultLeafSymbol: unique symbol; export declare const toTreeSymbol: unique symbol; export interface HasDefaultLeafE { readonly [toTreeSymbol]: Tree; } export declare abstract class DefaultLeafE extends Case implements HasDefaultLeafE { readonly [defaultLeafSymbol]: symbol; abstract get [toTreeSymbol](): Tree; } export declare function isDefaultLeaf(t: T): t is DefaultLeafE & T; export type AnyError = SchemaError; export declare class UnionE extends Case<{ readonly errors: Chunk; }> implements CompoundE { readonly _tag = "Union"; } export declare function unionE(errors: Chunk): UnionE; export declare class ExtractKeyE extends DefaultLeafE<{ readonly field: string; readonly keys: readonly string[]; readonly actual: unknown; }> implements Actual { readonly _tag = "ExtractKey"; get [toTreeSymbol](): Tree; } export declare function extractKeyE(field: string, keys: readonly string[], actual: unknown): ExtractKeyE; export declare class LeafE extends Case<{ readonly error: E; }> implements SingleE { readonly _tag = "Leaf"; } export declare function leafE(e: E): LeafE; export declare class PrevE extends Case<{ readonly error: E; }> implements SingleE { readonly _tag = "Prev"; } export declare function prevE(e: E): PrevE; export declare class NextE extends Case<{ readonly error: E; }> implements SingleE { readonly _tag = "Next"; } export declare function nextE(e: E): NextE; export declare class RefinementE extends Case<{ readonly error: E; }> implements SingleE { readonly _tag = "Refinement"; } export declare function refinementE(e: E): RefinementE; export declare class NamedE extends Case<{ readonly name: Name; readonly error: E; }> implements SingleE { readonly _tag = "Named"; } export declare function namedE(name: N, error: E): NamedE; export declare class StructE extends Case<{ readonly errors: Chunk; }> implements CompoundE { readonly _tag = "Struct"; } export declare function structE(errors: Chunk): StructE; export declare class CollectionE extends Case<{ readonly errors: Chunk; }> implements CompoundE { readonly _tag = "Collection"; } export declare function chunkE(errors: Chunk): CollectionE; export declare class UnknownArrayE extends DefaultLeafE<{ readonly actual: unknown; }> implements Actual { readonly _tag = "NotArray"; get [toTreeSymbol](): Tree; } export declare function unknownArrayE(actual: unknown): UnknownArrayE; export declare class RequiredKeyE extends Case<{ readonly error: E; readonly key: K; }> implements SingleE { readonly _tag = "RequiredKey"; } export declare function requiredKeyE(key: K, error: E): RequiredKeyE; export declare class OptionalKeyE extends Case<{ readonly error: E; readonly key: K; }> implements SingleE { readonly _tag = "OptionalKey"; } export declare function optionalKeyE(key: K, error: E): OptionalKeyE; export declare class OptionalIndexE extends Case<{ readonly index: I; readonly error: E; }> implements SingleE { readonly _tag = "OptionalIndex"; } export declare function optionalIndexE(index: K, error: E): OptionalIndexE; export declare class MissingKeysE extends Case<{ readonly keys: Chunk; }> { readonly _tag = "Missing"; } export declare function missingKeysE(keys: Chunk): MissingKeysE; export declare class CompositionE extends Case<{ readonly errors: Chunk; }> implements CompoundE { readonly _tag = "Composition"; } export declare function compositionE(errors: Chunk): CompositionE; export declare class UnknownRecordE extends DefaultLeafE<{ readonly actual: unknown; }> implements Actual { readonly _tag = "NotRecord"; get [toTreeSymbol](): Tree; } export declare function unknownRecordE(actual: unknown): UnknownRecordE; export declare class MemberE extends Case<{ readonly member: M; readonly error: E; }> implements SingleE { readonly _tag = "Member"; } export declare function memberE(member: M, error: E): MemberE; export declare class IntersectionE extends Case<{ readonly errors: Chunk; }> implements CompoundE { readonly _tag = "Intersection"; } export declare function intersectionE(errors: Chunk): IntersectionE; export declare class ParseDateE extends DefaultLeafE<{ readonly actual: unknown; }> implements Actual { readonly _tag = "NotDateString"; get [toTreeSymbol](): Tree; } export declare function parseDateE(actual: unknown): ParseDateE; export declare class ParseDateMsE extends DefaultLeafE<{ readonly actual: unknown; }> implements Actual { readonly _tag = "NotDateMs"; get [toTreeSymbol](): Tree; } export declare function parseDateMsE(actual: unknown): ParseDateMsE; export declare class LiteralE extends DefaultLeafE<{ readonly actual: unknown; readonly literals: KS; }> implements Actual { readonly _tag = "Literal"; get [toTreeSymbol](): Tree; } export declare function literalE(literals: KS, actual: unknown): LiteralE; export declare class InvalidIntegerE extends DefaultLeafE<{ readonly actual: number; }> implements Actual { readonly _tag = "NotInteger"; get [toTreeSymbol](): Tree; } export declare function invalidIntegerE(actual: number): InvalidIntegerE; export declare class PositiveE extends DefaultLeafE<{ readonly actual: number; }> implements Actual { readonly _tag = "NotPositive"; get [toTreeSymbol](): Tree; } export declare function positiveE(actual: number): PositiveE; export declare class NonEmptyE extends DefaultLeafE<{ readonly actual: A; }> implements Actual { readonly _tag = "NonEmpty"; get [toTreeSymbol](): Tree; } export declare class CustomE extends DefaultLeafE<{ readonly actual: A; readonly expected: string; }> implements Actual { readonly _tag = "Custom"; get [toTreeSymbol](): Tree; } export declare function nonEmptyE(actual: A): NonEmptyE; export declare function customE(actual: A, expected: string): CustomE; export declare class ParseNumberE extends DefaultLeafE<{ readonly actual: unknown; }> implements Actual { readonly _tag = "NotNumber"; get [toTreeSymbol](): Tree; } export declare function parseNumberE(actual: unknown): ParseNumberE; export declare class ParseObjectE extends DefaultLeafE<{ readonly actual: unknown; }> implements Actual { readonly _tag = "NotObject"; get [toTreeSymbol](): Tree; } export declare function parseObjectE(actual: unknown): ParseObjectE; export declare class ParseStringE extends DefaultLeafE<{ readonly actual: unknown; }> implements Actual { readonly _tag = "NotString"; get [toTreeSymbol](): Tree; } export declare function parseStringE(actual: unknown): ParseStringE; export declare class ParseBoolE extends DefaultLeafE<{ readonly actual: unknown; }> implements Actual { readonly _tag = "NotBool"; get [toTreeSymbol](): Tree; } export declare function parseBoolE(actual: unknown): ParseBoolE; export declare class ParseUuidE extends DefaultLeafE<{ readonly actual: unknown; }> implements Actual { readonly _tag = "NotUUID"; get [toTreeSymbol](): Tree; } export type Forest = Chunk>; export interface Tree { readonly value: A; readonly forest: Forest; } export declare function tree(value: A, forest?: Forest): Tree; export declare function toTreeWith(toTree: (e: E) => Tree): (de: SchemaError) => Tree; export declare function drawTree(tree: Tree): string; export declare const errorToTree: (de: SchemaError) => Tree; export declare const drawError: (de: SchemaError) => string; //# sourceMappingURL=error.d.ts.map