import { GenericParameter } from './GenericParameter'; import { Parameter } from './Parameter'; import { TypeBuilder } from './TypeBuilder'; import { Writer } from './Writer'; export declare class FunctionType extends TypeBuilder { needsParenthesisWhenIndexed: boolean; needsParenthesisInKeyof: boolean; needsParenthesisInUnion: boolean; needsParenthesisInIntersection: boolean; private returnType; private parameters; private genericParameters; setReturnType(returnType: TypeBuilder): this; addParameter(param: Parameter): this; addGenericParameter(param: GenericParameter): this; write(writer: Writer): void; } export declare function functionType(): FunctionType;