import * as ts from "typescript";
export type GenericFunctionValueNode = ts.ArrowFunction | ts.FunctionExpression;
export declare const isGenericFunctionValueNode: (node: ts.Node) => node is GenericFunctionValueNode;
export declare const isGenericFunctionDeclarationNode: (node: ts.Node) => node is ts.FunctionDeclaration;
export declare const isDeterministicGenericFunctionAliasTargetSymbol: (symbol: ts.Symbol, supportedSymbols: ReadonlySet<ts.Symbol>) => boolean;
export declare const collectWrittenSymbols: (sourceFile: ts.SourceFile, checker: ts.TypeChecker) => ReadonlySet<ts.Symbol>;
export declare const getSupportedGenericFunctionValueSymbol: (node: GenericFunctionValueNode, checker: ts.TypeChecker, writtenSymbols: ReadonlySet<ts.Symbol>) => ts.Symbol | undefined;
export declare const getSupportedGenericFunctionDeclarationSymbol: (node: ts.FunctionDeclaration, checker: ts.TypeChecker) => ts.Symbol | undefined;
export declare const getSupportedGenericFunctionAliasSymbol: (declaration: ts.VariableDeclaration, checker: ts.TypeChecker, writtenSymbols: ReadonlySet<ts.Symbol>, supportedSymbols: ReadonlySet<ts.Symbol>) => ts.Symbol | undefined;
export declare const collectSupportedGenericFunctionValueSymbols: (sourceFile: ts.SourceFile, checker: ts.TypeChecker, writtenSymbols: ReadonlySet<ts.Symbol>) => ReadonlySet<ts.Symbol>;
//# sourceMappingURL=generic-function-values.d.ts.map