import { type StaticType, type StaticDirection } from './static.mjs'; import { type TSchema, type TSchemaOptions } from './schema.mjs'; import { type StaticInstantiatedParameters } from './function.mjs'; import { type TProperties } from './properties.mjs'; export type StaticConstructor, StaticReturnType extends unknown = StaticType, Result = new (...args: StaticParameters) => StaticReturnType> = Result; /** Represents a Constructor type. */ export interface TConstructor extends TSchema { '~kind': 'Constructor'; type: 'constructor'; parameters: Parameters; instanceType: InstanceType; } /** Creates a Constructor type. */ export declare function Constructor(parameters: [...Parameters], instanceType: InstanceType, options?: TSchemaOptions): TConstructor; /** Returns true if the given value is a TConstructor. */ export declare function IsConstructor(value: unknown): value is TConstructor; /** Extracts options from a TConstructor. */ export declare function ConstructorOptions(type: TConstructor): TSchemaOptions;