import * as T from '../type/index'; type TDereference = (Key extends keyof Context ? Context[Key] : T.TRef); type TDelimitedDecode = (Input extends [infer Left, ...infer Right] ? Left extends [infer Item, infer _] ? TDelimitedDecode : TDelimitedDecode : Result); type TDelimited = Input extends [infer Left extends unknown[], infer Right extends unknown[]] ? TDelimitedDecode<[...Left, ...Right]> : []; export type TGenericReferenceParameterListMapping = TDelimited; export declare function GenericReferenceParameterListMapping(input: [unknown, unknown], context: unknown): unknown[]; export type TGenericReferenceMapping'] ? T.TInstantiate, Args> : never : never> = Result; export declare function GenericReferenceMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TSchema; export type TGenericArgumentsListMapping = TDelimited; export declare function GenericArgumentsListMapping(input: [unknown, unknown], context: unknown): unknown[]; type GenericArgumentsContext = (Arguments extends [...infer Left extends string[], infer Right extends string] ? GenericArgumentsContext; }> : T.Evaluate); export type TGenericArgumentsMapping = Input extends ['<', infer Arguments extends string[], '>'] ? Context extends infer Context extends T.TProperties ? GenericArgumentsContext : never : never; declare const GenericArgumentsContext: (_arguments: string[], context: T.TProperties) => T.TProperties; export declare function GenericArgumentsMapping(input: [unknown, unknown, unknown], context: unknown): T.TProperties; export type TKeywordStringMapping = T.TString; export declare function KeywordStringMapping(input: 'string', context: unknown): T.TString; export type TKeywordNumberMapping = T.TNumber; export declare function KeywordNumberMapping(input: 'number', context: unknown): T.TNumber; export type TKeywordBooleanMapping = T.TBoolean; export declare function KeywordBooleanMapping(input: 'boolean', context: unknown): T.TBoolean; export type TKeywordUndefinedMapping = T.TUndefined; export declare function KeywordUndefinedMapping(input: 'undefined', context: unknown): T.TUndefined; export type TKeywordNullMapping = T.TNull; export declare function KeywordNullMapping(input: 'null', context: unknown): T.TNull; export type TKeywordIntegerMapping = T.TInteger; export declare function KeywordIntegerMapping(input: 'integer', context: unknown): T.TInteger; export type TKeywordBigIntMapping = T.TBigInt; export declare function KeywordBigIntMapping(input: 'bigint', context: unknown): T.TBigInt; export type TKeywordUnknownMapping = T.TUnknown; export declare function KeywordUnknownMapping(input: 'unknown', context: unknown): T.TUnknown; export type TKeywordAnyMapping = T.TAny; export declare function KeywordAnyMapping(input: 'any', context: unknown): T.TAny; export type TKeywordNeverMapping = T.TNever; export declare function KeywordNeverMapping(input: 'never', context: unknown): T.TNever; export type TKeywordSymbolMapping = T.TSymbol; export declare function KeywordSymbolMapping(input: 'symbol', context: unknown): T.TSymbol; export type TKeywordVoidMapping = T.TVoid; export declare function KeywordVoidMapping(input: 'void', context: unknown): T.TVoid; export type TKeywordMapping = Input; export declare function KeywordMapping(input: unknown, context: unknown): unknown; export type TLiteralStringMapping = Input extends T.TLiteralValue ? T.TLiteral : never; export declare function LiteralStringMapping(input: string, context: unknown): T.TLiteral; export type TLiteralNumberMapping = Input extends `${infer Value extends number}` ? T.TLiteral : never; export declare function LiteralNumberMapping(input: string, context: unknown): T.TLiteral; export type TLiteralBooleanMapping = Input extends 'true' ? T.TLiteral : T.TLiteral; export declare function LiteralBooleanMapping(input: 'true' | 'false', context: unknown): T.TLiteral; export type TLiteralMapping = Input; export declare function LiteralMapping(input: unknown, context: unknown): unknown; export type TKeyOfMapping = Input extends [unknown] ? true : false; export declare function KeyOfMapping(input: [unknown] | [], context: unknown): boolean; type TIndexArrayMappingReduce = (Input extends [infer Left extends unknown, ...infer Right extends unknown[]] ? Left extends ['[', infer Type extends T.TSchema, ']'] ? TIndexArrayMappingReduce : TIndexArrayMappingReduce : Result); export type TIndexArrayMapping = Input extends unknown[] ? TIndexArrayMappingReduce : []; export declare function IndexArrayMapping(input: ([unknown, unknown, unknown] | [unknown, unknown])[], context: unknown): unknown[]; export type TExtendsMapping = Input extends ['extends', infer Type extends T.TSchema, '?', infer True extends T.TSchema, ':', infer False extends T.TSchema] ? [Type, True, False] : []; export declare function ExtendsMapping(input: [unknown, unknown, unknown, unknown, unknown, unknown] | [], context: unknown): unknown[]; export type TBaseMapping = (Input extends ['(', infer Type extends T.TSchema, ')'] ? Type : Input extends infer Type extends T.TSchema ? Type : never); export declare function BaseMapping(input: [unknown, unknown, unknown] | unknown, context: unknown): unknown; type TFactorIndexArray = (IndexArray extends [...infer Left extends unknown[], infer Right extends T.TSchema[]] ? (Right extends [infer Indexer extends T.TSchema] ? T.TIndex, T.TIndexPropertyKeys> : Right extends [] ? T.TArray> : T.TNever) : Type); type TFactorExtends = (Extends extends [infer Right extends T.TSchema, infer True extends T.TSchema, infer False extends T.TSchema] ? T.TExtends : Type); export type TFactorMapping = Input extends [infer KeyOf extends boolean, infer Type extends T.TSchema, infer IndexArray extends unknown[], infer Extends extends unknown[]] ? KeyOf extends true ? TFactorExtends>, Extends> : TFactorExtends, Extends> : never; export declare function FactorMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TSchema; type TExprBinaryMapping = (Rest extends [infer Operator extends unknown, infer Right extends T.TSchema, infer Next extends unknown[]] ? (TExprBinaryMapping extends infer Schema extends T.TSchema ? (Operator extends '&' ? (Schema extends T.TIntersect ? T.TIntersect<[Left, ...Types]> : T.TIntersect<[Left, Schema]>) : Operator extends '|' ? (Schema extends T.TUnion ? T.TUnion<[Left, ...Types]> : T.TUnion<[Left, Schema]>) : never) : never) : Left); export type TExprTermTailMapping = Input; export declare function ExprTermTailMapping(input: [unknown, unknown, unknown] | [], context: unknown): [] | [unknown, unknown, unknown]; export type TExprTermMapping = (Input extends [infer Left extends T.TSchema, infer Rest extends unknown[]] ? TExprBinaryMapping : []); export declare function ExprTermMapping(input: [unknown, unknown], context: unknown): T.TSchema; export type TExprTailMapping = Input; export declare function ExprTailMapping(input: [unknown, unknown, unknown] | [], context: unknown): [] | [unknown, unknown, unknown]; export type TExprMapping = Input extends [infer Left extends T.TSchema, infer Rest extends unknown[]] ? TExprBinaryMapping : []; export declare function ExprMapping(input: [unknown, unknown], context: unknown): T.TSchema; export type TTypeMapping = Input; export declare function TypeMapping(input: unknown, context: unknown): unknown; export type TPropertyKeyMapping = Input; export declare function PropertyKeyMapping(input: string, context: unknown): string; export type TReadonlyMapping = Input extends [unknown] ? true : false; export declare function ReadonlyMapping(input: [unknown] | [], context: unknown): boolean; export type TOptionalMapping = Input extends [unknown] ? true : false; export declare function OptionalMapping(input: [unknown] | [], context: unknown): boolean; export type TPropertyMapping = Input extends [infer IsReadonly extends boolean, infer Key extends string, infer IsOptional extends boolean, string, infer Type extends T.TSchema] ? { [_ in Key]: ([ IsReadonly, IsOptional ] extends [true, true] ? T.TReadonlyOptional : [ IsReadonly, IsOptional ] extends [true, false] ? T.TReadonly : [ IsReadonly, IsOptional ] extends [false, true] ? T.TOptional : Type); } : never; export declare function PropertyMapping(input: [unknown, unknown, unknown, unknown, unknown], context: unknown): { [x: string]: T.TSchema; }; export type TPropertyDelimiterMapping = Input; export declare function PropertyDelimiterMapping(input: [unknown, unknown] | [unknown], context: unknown): [unknown] | [unknown, unknown]; export type TPropertyListMapping = TDelimited; export declare function PropertyListMapping(input: [unknown, unknown], context: unknown): unknown[]; type TObjectMappingReduce = (PropertiesList extends [infer Left extends T.TProperties, ...infer Right extends T.TProperties[]] ? TObjectMappingReduce : { [Key in keyof Result]: Result[Key]; }); export type TObjectMapping = Input extends ['{', infer PropertyList extends T.TProperties[], '}'] ? T.TObject> : never; export declare function ObjectMapping(input: [unknown, unknown, unknown], context: unknown): T.TObject; export type TElementListMapping = TDelimited; export declare function ElementListMapping(input: [unknown, unknown], context: unknown): unknown[]; export type TTupleMapping = Input extends ['[', infer Types extends T.TSchema[], ']'] ? T.TTuple : never; export declare function TupleMapping(input: [unknown, unknown, unknown], context: unknown): T.TTuple; export type TParameterMapping = Input extends [string, ':', infer Type extends T.TSchema] ? Type : never; export declare function ParameterMapping(input: [unknown, unknown, unknown], context: unknown): T.TSchema; export type TParameterListMapping = TDelimited; export declare function ParameterListMapping(input: [unknown, unknown], context: unknown): unknown[]; export type TFunctionMapping = Input extends ['(', infer ParameterList extends T.TSchema[], ')', '=>', infer ReturnType extends T.TSchema] ? T.TFunction : never; export declare function FunctionMapping(input: [unknown, unknown, unknown, unknown, unknown], context: unknown): T.TFunction; export type TConstructorMapping = Input extends ['new', '(', infer ParameterList extends T.TSchema[], ')', '=>', infer InstanceType extends T.TSchema] ? T.TConstructor : never; export declare function ConstructorMapping(input: [unknown, unknown, unknown, unknown, unknown, unknown], context: unknown): T.TConstructor; export type TMappedMapping = Input extends ['{', '[', infer _Key extends string, 'in', infer _Right extends T.TSchema, ']', ':', infer _Type extends T.TSchema, '}'] ? T.TLiteral<'Mapped types not supported'> : never; export declare function MappedMapping(input: [unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown, unknown], context: unknown): T.TLiteral<"Mapped types not supported">; export type TAsyncIteratorMapping = Input extends ['AsyncIterator', '<', infer Type extends T.TSchema, '>'] ? T.TAsyncIterator : never; export declare function AsyncIteratorMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TAsyncIterator; export type TIteratorMapping = Input extends ['Iterator', '<', infer Type extends T.TSchema, '>'] ? T.TIterator : never; export declare function IteratorMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TIterator; export type TArgumentMapping = Input extends ['Argument', '<', infer Type extends T.TSchema, '>'] ? Type extends T.TLiteral ? T.TArgument : T.TNever : never; export declare function ArgumentMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TNever | T.TArgument; export type TAwaitedMapping = Input extends ['Awaited', '<', infer Type extends T.TSchema, '>'] ? T.TAwaited : never; export declare function AwaitedMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TSchema; export type TArrayMapping = Input extends ['Array', '<', infer Type extends T.TSchema, '>'] ? T.TArray : never; export declare function ArrayMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TArray; export type TRecordMapping = Input extends ['Record', '<', infer Key extends T.TSchema, ',', infer Type extends T.TSchema, '>'] ? T.TRecordOrObject : never; export declare function RecordMapping(input: [unknown, unknown, unknown, unknown, unknown, unknown], context: unknown): T.TNever; export type TPromiseMapping = Input extends ['Promise', '<', infer Type extends T.TSchema, '>'] ? T.TPromise : never; export declare function PromiseMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TPromise; export type TConstructorParametersMapping = Input extends ['ConstructorParameters', '<', infer Type extends T.TSchema, '>'] ? T.TConstructorParameters : never; export declare function ConstructorParametersMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TNever; export type TFunctionParametersMapping = Input extends ['Parameters', '<', infer Type extends T.TSchema, '>'] ? T.TParameters : never; export declare function FunctionParametersMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TNever; export type TInstanceTypeMapping = Input extends ['InstanceType', '<', infer Type extends T.TSchema, '>'] ? T.TInstanceType : never; export declare function InstanceTypeMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TNever; export type TReturnTypeMapping = Input extends ['ReturnType', '<', infer Type extends T.TSchema, '>'] ? T.TReturnType : never; export declare function ReturnTypeMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TNever; export type TPartialMapping = Input extends ['Partial', '<', infer Type extends T.TSchema, '>'] ? T.TPartial : never; export declare function PartialMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TObject<{}>; export type TRequiredMapping = Input extends ['Required', '<', infer Type extends T.TSchema, '>'] ? T.TRequired : never; export declare function RequiredMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TObject<{}>; export type TPickMapping = Input extends ['Pick', '<', infer Type extends T.TSchema, ',', infer Key extends T.TSchema, '>'] ? T.TPick : never; export declare function PickMapping(input: [unknown, unknown, unknown, unknown, unknown, unknown], context: unknown): T.TObject<{}>; export type TOmitMapping = Input extends ['Omit', '<', infer Type extends T.TSchema, ',', infer Key extends T.TSchema, '>'] ? T.TOmit : never; export declare function OmitMapping(input: [unknown, unknown, unknown, unknown, unknown, unknown], context: unknown): T.TObject<{}>; export type TExcludeMapping = Input extends ['Exclude', '<', infer Type extends T.TSchema, ',', infer Key extends T.TSchema, '>'] ? T.TExclude : never; export declare function ExcludeMapping(input: [unknown, unknown, unknown, unknown, unknown, unknown], context: unknown): T.TNever; export type TExtractMapping = Input extends ['Extract', '<', infer Type extends T.TSchema, ',', infer Key extends T.TSchema, '>'] ? T.TExtract : never; export declare function ExtractMapping(input: [unknown, unknown, unknown, unknown, unknown, unknown], context: unknown): T.TSchema; export type TUppercaseMapping = Input extends ['Uppercase', '<', infer Type extends T.TSchema, '>'] ? T.TUppercase : never; export declare function UppercaseMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TSchema; export type TLowercaseMapping = Input extends ['Lowercase', '<', infer Type extends T.TSchema, '>'] ? T.TLowercase : never; export declare function LowercaseMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TSchema; export type TCapitalizeMapping = Input extends ['Capitalize', '<', infer Type extends T.TSchema, '>'] ? T.TCapitalize : never; export declare function CapitalizeMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TSchema; export type TUncapitalizeMapping = Input extends ['Uncapitalize', '<', infer Type extends T.TSchema, '>'] ? T.TUncapitalize : never; export declare function UncapitalizeMapping(input: [unknown, unknown, unknown, unknown], context: unknown): T.TSchema; export type TDateMapping = T.TDate; export declare function DateMapping(input: 'Date', context: unknown): T.TDate; export type TUint8ArrayMapping = T.TUint8Array; export declare function Uint8ArrayMapping(input: 'Uint8Array', context: unknown): T.TUint8Array; export type TReferenceMapping = Context extends T.TProperties ? Input extends string ? TDereference : never : never; export declare function ReferenceMapping(input: string, context: unknown): T.TSchema; export {};