import { Memory } from '../../../system/memory/index.mjs'; import { type TSchema } from '../../types/schema.mjs'; import { type TLiteral } from '../../types/literal.mjs'; import { type TObject } from '../../types/object.mjs'; import { type TProperties } from '../../types/properties.mjs'; import { type TIdentifier } from '../../types/identifier.mjs'; import { type TTemplateLiteral } from '../../types/template_literal.mjs'; import { type TInstantiateType, type TState } from '../instantiate.mjs'; import { type TEvaluateIntersect } from '../evaluate/evaluate.mjs'; import { type TEvaluateTemplateLiteral } from '../evaluate/evaluate.mjs'; import { type TMappedVariants } from './mapped_variants.mjs'; type TCanonicalAs ? TEvaluateTemplateLiteral : InstantiatedAs> = Result; type TMappedVariant, InstantiatedAs extends TSchema = TInstantiateType, CanonicalAs extends TSchema = TCanonicalAs, InstantiatedProperty extends TSchema = TInstantiateType, Result extends TProperties = CanonicalAs extends TLiteral ? { [_ in CanonicalAs['const']]: InstantiatedProperty; } : {}> = Result; type TMappedProperties = (Variants extends [infer Left extends TSchema, ...infer Right extends TSchema[]] ? TMappedProperties]> : Result); type TReduceProperties = (Properties extends [infer Left extends TProperties, ...infer Right extends TProperties[]] ? TReduceProperties]> : Result); export type TMappedOperation, MappedProperties extends TProperties[] = TMappedProperties, MappedObjects extends TSchema[] = TReduceProperties, Result extends TSchema = TEvaluateIntersect> = Result; export declare function MappedOperation(context: Context, state: State, identifier: Identifier, type: Type, as: As, property: Property): TMappedOperation; export {};