import { type TSESTree } from '@typescript-eslint/utils';
export declare function isFunctionLike(node: TSESTree.Node): node is TSESTree.FunctionLike;
/**
 * Walks the synchronous portion of a reactive scope.
 *
 * - Stops descending into nested function boundaries, since they run in their
 *   own call context and should not be treated as reads/writes of the current
 *   reactive scope.
 * - Traverses the argument of `await`, because it is evaluated synchronously,
 *   then stops visiting subsequent sibling nodes in the current execution path.
 */
export declare function walkSynchronousAst(root: TSESTree.Node, visitor: (node: TSESTree.Node) => false | void): void;
/**
 * Walks nodes that run after an async boundary inside a reactive callback.
 *
 * The traversal is intentionally conservative:
 * - it never descends into nested function boundaries
 * - it propagates async state through straight-line code
 * - it does not propagate branch-local `await` from optional control-flow
 *   bodies into later siblings, which avoids noisy false positives
 */
export declare function walkAfterAsyncBoundaryAst(root: TSESTree.Node, visitor: (node: TSESTree.Node) => void): void;
/**
 * Shallow AST walker. Visits `root` and every descendant, skipping the
 * synthetic `parent` back-pointer to avoid cycles.
 *
 * If the visitor returns `false` for a node, that node's children are NOT
 * visited (prune / stop-descend). Any other return value (including `void`)
 * continues the walk.
 */
export declare function walkAst(root: TSESTree.Node, visitor: (node: TSESTree.Node) => false | void): void;
