import { FnInput } from "../reducer/lambda/FnInput.js"; import { Lambda } from "../reducer/lambda/index.js"; import { SquiggleSerializationVisitor } from "../serialization/squiggle.js"; import { result } from "../utility/result.js"; import { Value } from "../value/index.js"; import { InputType } from "../value/VInput.js"; import { SerializedType } from "./serialize.js"; import { Type } from "./Type.js"; export type InferredOutputType = { kind: "ok"; type: Type; } | { kind: "arity"; arity: number[]; } | { kind: "no-match"; }; export declare class TTypedLambda extends Type { inputs: FnInput[]; output: Type; minInputs: number; maxInputs: number; constructor(inputs: FnInput[], output: Type); check(v: Value): boolean; unpack(v: Value): Lambda | undefined; pack(v: Lambda): import("../value/vLambda.js").VLambda; serialize(visit: SquiggleSerializationVisitor): SerializedType; toString(): string; defaultFormInputCode(): string; defaultFormInputType(): InputType; validateArgs(args: Value[]): result; inferOutputType(argTypes: Type[]): InferredOutputType; } export declare function tTypedLambda(inputs: FnInput[], output: Type): TTypedLambda; //# sourceMappingURL=TTypedLambda.d.ts.map