import { DiffUnions, ElementOf, Evaluate, IsAny, KeyValuate, MergeAll, StringifyPossibleTypes, StringReplace, UnionDiffResult } from "@re-do/utils"; import { ParsedType } from "../../parse.js"; import { ParseConfig } from "./internal.js"; import { TypeSetMember } from "./member.js"; import { Root } from "../root.js"; import { Obj } from "../recursible"; export declare namespace TypeSet { type Definition = Obj.Definition; type TypeNameFromList = keyof MergeAll & string; type ValidateMemberList>, DefinedTypeName extends string = keyof Merged & string, DeclaredTypeName extends string = DeclaredTypeNames extends never[] ? DefinedTypeName : ElementOf, ErrorMessage extends string = MissingTypesError> = { [I in keyof Definitions]: ErrorMessage & { [TypeName in keyof Definitions[I]]: TypeName extends DeclaredTypeName ? KeyValuate : `${TypeName & string} was never declared.`; }; }; type MergeMemberList = MergeAll; type ValidateReferences = Root.Validate; type Validate = IsAny extends true ? any : Evaluate<{ [TypeName in keyof TypeSet]: TypeSetMember.Validate; }>; type Parse = { [TypeName in keyof TypeSet]: ParsedType, Options>; }; } export declare const extraneousTypesErrorMessage = "Defined types @types were never declared."; export declare const missingTypesErrorMessage = "Declared types @types were never defined."; export declare type MissingTypesError = DiffUnions extends UnionDiffResult ? Missing extends [] ? {} : StringReplace}'`>> : never;