import { tsAst } from '../types';
type NodeTypePredicate<T extends tsAst.Node> = (tsAstModule: typeof tsAst, node: tsAst.Node) => node is T;
/**
 * https://github.com/microsoft/typescript-go/blob/2a5e1cf9fe2261f2ad56871a6d2ed12d6ac34083/internal/scanner/scanner.go#L2473
 * TODO: check if it's added to the ast package
 */
export declare function getStartOfNode(tsAstModule: typeof tsAst, node: tsAst.Node, sourceFile: tsAst.SourceFile): number;
export declare function findNodeAtOffsetRange(tsAstModule: typeof tsAst, sourceFile: tsAst.SourceFile, start: number, end: number): tsAst.Node | undefined;
export declare const isReactiveStatement: (tsAstModule: typeof tsAst, node: tsAst.Node | undefined | void | null) => node is tsAst.LabeledStatement;
export declare const isInReactiveStatement: (tsAstModule: typeof tsAst, node: tsAst.Node) => boolean;
export declare function gatherDescendants<T extends tsAst.Node>(tsAstModule: typeof tsAst, node: tsAst.Node, predicate: NodeTypePredicate<T>, dest?: T[]): T[];
export declare const gatherIdentifiers: (tsAstModule: typeof tsAst, node: tsAst.Node) => tsAst.Identifier[];
export {};
