import { type TSchema } from '../../types/schema.mjs'; import { type TProperties } from '../../types/properties.mjs'; import { type TCyclic } from '../../types/cyclic.mjs'; import { type TObject } from '../../types/object.mjs'; import { type TCyclicDependencies } from '../cyclic/dependencies.mjs'; import { type TInterfaceDeferred } from '../../action/index.mjs'; import { type TInstantiateProperties } from '../instantiate.mjs'; import { type TInstantiateTypes } from '../instantiate.mjs'; import { type TState } from '../instantiate.mjs'; import { type TEvaluateIntersect } from '../evaluate/evaluate.mjs'; type TCyclicInterface, Heritage>, instantiatedProperties extends TProperties = TInstantiateProperties<{}, TState<[], []>, Properties>, EvaluatedInterface extends TSchema = TEvaluateIntersect<[...InstantiatedHeritage, TObject]>> = EvaluatedInterface; type TCyclicDefinitions]: Context[Key] extends TInterfaceDeferred ? TCyclicInterface : Context[Key]; }> = Result; export type TInstantiateCyclic, Definitions extends TProperties = TCyclicDefinitions, Result extends TSchema = TCyclic> = Result; export declare function InstantiateCyclic(context: Context, ref: Ref, type: Type): TInstantiateCyclic; export {};