import { Evaluate, Narrow, Exact, TreeOf, IsAny, WithDefaults } from "@re-do/utils"; import { Root } from "./components"; import { AllowsOptions, ReferencesOptions, GenerateOptions } from "./components/parser.js"; import { ValidationErrors } from "./components/errors.js"; import { TypeSet } from "./components"; export declare type Definition = Root.Definition; export declare type Validate = IsAny extends true ? Def : Root.Validate; export declare type Parse = IsAny extends true ? Def : Root.Parse, WithDefaults>; export declare type ParseTypeOptions = { onCycle?: Definition; seen?: Record; deepOnCycle?: boolean; onResolve?: Definition; }; export declare type DefaultParseTypeOptions = { onCycle: never; seen: {}; deepOnCycle: false; onResolve: never; }; export declare type InferredMethods = { assert: (value: unknown, options?: AllowsOptions) => void; check: (value: unknown, options?: AllowsOptions) => string; }; export declare const createParseFunction: (predefinedTypeSet: import("@re-do/utils").CastWithExclusion, []>) => ParseFunction; export declare const parse: ParseFunction<{}>; export declare type ParseFunction = (definition: Validate, ActiveTypeSet>, options?: Narrow>; }>) => Evaluate>; export declare type ParsedType>> = Evaluate<{ definition: Definition; type: TypeOfParsed; typeSet: Evaluate; check: (value: unknown, options?: AllowsOptions) => string; assert: (value: unknown, options?: AllowsOptions) => void; allows: (value: unknown, options?: AllowsOptions) => ValidationErrors; generate: (options?: GenerateOptions) => TypeOfParsed; references: (options?: ReferencesOptions) => TreeOf; }>;