import { ElementOf, Narrow } from "@re-do/utils"; import { CompileFunction } from "./compile.js"; import { TypeSet } from "./components"; export declare const createDefineFunctionMap: (typeNames: DeclaredTypeNames) => DefineFunctionMap; export declare type DefineFunctionMap = { [DefinedTypeName in ElementOf]: DefineFunction; }; export declare type DefineFunction, DeclaredTypeNames extends string[]> = (definition: TypeSet.ValidateReferences, ElementOf>) => { [K in DefinedTypeName]: Def; }; export declare const createDefineFunction: , DeclaredTypeNames extends string[]>(declaredTypeNames: DeclaredTypeNames, definedTypeName: DefinedTypeName) => DefineFunction; export declare type Declaration = { define: DefineFunctionMap; compile: CompileFunction; }; export declare const declare: (...names: import("@re-do/utils").CastWithExclusion, []>) => { define: DefineFunctionMap, []>>; compile: >, keyof TypeSet.Validate> & string, DeclaredTypeNames extends never[] ? keyof TypeSet.Validate> & string : ElementOf, import("@re-do/utils").Cast> & string : ElementOf) extends keyof TypeSet.Validate> & string ? never : DeclaredTypeNames extends never[] ? keyof TypeSet.Validate> & string : ElementOf>, (DeclaredTypeNames extends never[] ? keyof TypeSet.Validate> & string : ElementOf)[]> extends [] ? {} : import("@re-do/utils").StringReplace<`Declared types ${import("@re-do/utils").Join> & string : ElementOf) extends keyof TypeSet.Validate> & string ? never : DeclaredTypeNames extends never[] ? keyof TypeSet.Validate> & string : ElementOf>, (DeclaredTypeNames extends never[] ? keyof TypeSet.Validate> & string : ElementOf)[]>>}'`>, ", ", "">} were never defined.`, "@types", import("@re-do/utils").Join> & string : ElementOf) extends keyof TypeSet.Validate> & string ? never : DeclaredTypeNames extends never[] ? keyof TypeSet.Validate> & string : ElementOf>, (DeclaredTypeNames extends never[] ? keyof TypeSet.Validate> & string : ElementOf)[]>>}'`>, ", ", "">>>>(...definitions: import("@re-do/utils").CastWithExclusion, []>) => { parse: import("./parse.js").ParseFunction>; types: TypeSet.Parse, import("./parse.js").DefaultParseTypeOptions>; }; };