|
|
import {Node} from 'acorn';
declare module "acorn-walk" { type FullWalkerCallback<TState> = ( node: Node, state: TState, type: string ) => void;
type FullAncestorWalkerCallback<TState> = ( node: Node, state: TState | Node[], ancestors: Node[], type: string ) => void; type WalkerCallback<TState> = (node: Node, state: TState) => void;
type SimpleWalkerFn<TState> = ( node: Node, state: TState ) => void; type AncestorWalkerFn<TState> = ( node: Node, state: TState| Node[], ancestors: Node[] ) => void;
type RecursiveWalkerFn<TState> = ( node: Node, state: TState, callback: WalkerCallback<TState> ) => void; type SimpleVisitors<TState> = { [type: string]: SimpleWalkerFn<TState> };
type AncestorVisitors<TState> = { [type: string]: AncestorWalkerFn<TState> }; type RecursiveVisitors<TState> = { [type: string]: RecursiveWalkerFn<TState> };
type FindPredicate = (type: string, node: Node) => boolean;
interface Found<TState> { node: Node, state: TState }
export function simple<TState>( node: Node, visitors: SimpleVisitors<TState>, base?: RecursiveVisitors<TState>, state?: TState ): void;
export function ancestor<TState>( node: Node, visitors: AncestorVisitors<TState>, base?: RecursiveVisitors<TState>, state?: TState ): void;
export function recursive<TState>( node: Node, state: TState, functions: RecursiveVisitors<TState>, base?: RecursiveVisitors<TState> ): void;
export function full<TState>( node: Node, callback: FullWalkerCallback<TState>, base?: RecursiveVisitors<TState>, state?: TState ): void;
export function fullAncestor<TState>( node: Node, callback: FullAncestorWalkerCallback<TState>, base?: RecursiveVisitors<TState>, state?: TState ): void;
export function make<TState>( functions: RecursiveVisitors<TState>, base?: RecursiveVisitors<TState> ): RecursiveVisitors<TState>;
export function findNodeAt<TState>( node: Node, start: number | undefined, end?: number | undefined, type?: FindPredicate | string, base?: RecursiveVisitors<TState>, state?: TState ): Found<TState> | undefined;
export function findNodeAround<TState>( node: Node, start: number | undefined, type?: FindPredicate | string, base?: RecursiveVisitors<TState>, state?: TState ): Found<TState> | undefined;
export const findNodeAfter: typeof findNodeAround; }
|