import { type StaticType, type StaticDirection } from './static.mjs'; import { type TSchema, type TSchemaOptions } from './schema.mjs'; import { type TProperties } from './properties.mjs'; import { type TTuple } from './tuple.mjs'; import { type TInstantiate } from '../engine/instantiate.mjs'; export type StaticInstantiatedParameters>, Static extends unknown = StaticType, Result extends unknown[] = Static extends unknown[] ? Static : []> = Result; export type StaticFunction, StaticReturnType extends unknown = StaticType, Result = (...args: StaticParameters) => StaticReturnType> = Result; /** Represents a Function type. */ export interface TFunction extends TSchema { '~kind': 'Function'; type: 'function'; parameters: Parameters; returnType: ReturnType; } /** Creates a Function type. */ export declare function _Function_(parameters: [...Parameters], returnType: ReturnType, options?: TSchemaOptions): TFunction; export { _Function_ as Function }; /** Returns true if the given value is TFunction. */ export declare function IsFunction(value: unknown): value is TFunction; /** Extracts options from a TFunction. */ export declare function FunctionOptions(type: TFunction): TSchemaOptions;