import { KNativePointer } from "../../src/reexport-for-generated";
import { Es2pandaAstNodeType } from "./../Es2pandaEnums";
import { Expression } from "./Expression";
import { FunctionSignature } from "./FunctionSignature";
import { TSTypeParameterDeclaration } from "./TSTypeParameterDeclaration";
import { TypeNode } from "./TypeNode";
import { varbinder } from "./varbinder";
export declare class TSFunctionType extends TypeNode {
    constructor(pointer: KNativePointer, astNodeType: Es2pandaAstNodeType);
    static createTSFunctionType(signature?: FunctionSignature): TSFunctionType;
    static updateTSFunctionType(original?: TSFunctionType, signature?: FunctionSignature): TSFunctionType;
    /** @deprecated */
    setScope(scope?: varbinder.Scope): this;
    get typeParams(): TSTypeParameterDeclaration | undefined;
    get params(): readonly Expression[];
    get returnType(): TypeNode | undefined;
    /** @deprecated */
    setNullable(nullable: boolean): this;
    protected readonly brandTSFunctionType: undefined;
}
export declare function isTSFunctionType(node: object | undefined): node is TSFunctionType;
