export type VisitorFn = (moduleRecord: import("./moduleRecord").LavamoatModuleRecord) => void;
/**
 * @callback VisitorFn
 * @param {import('./moduleRecord').LavamoatModuleRecord} moduleRecord
 * @returns {void}
 */
/**
 * @param {object} options
 * @param {string} options.moduleSpecifier
 * @param {import('./parseForPolicy').ImportHookFn} options.importHook
 * @param {VisitorFn} options.visitorFn
 * @param {import('./parseForPolicy').ShouldImportFn} options.shouldImport
 * @param {Set<string>} [options.visitedSpecifiers]
 */
export function walk({ moduleSpecifier, importHook, visitorFn, shouldImport, visitedSpecifiers, }: {
    moduleSpecifier: string;
    importHook: import("./parseForPolicy").ImportHookFn;
    visitorFn: VisitorFn;
    shouldImport: import("./parseForPolicy").ShouldImportFn;
    visitedSpecifiers?: Set<string> | undefined;
}): Promise<void>;
/**
 * @param {object} options
 * @param {string} options.moduleSpecifier
 * @param {import('./parseForPolicy').ImportHookFn} options.importHook
 * @param {import('./parseForPolicy').ShouldImportFn} [options.shouldImport]
 * @param {Set<string>} [options.visitedSpecifiers]
 * @returns {AsyncIterableIterator<
 *   import('./moduleRecord').LavamoatModuleRecord
 * >}
 */
export function eachNodeInTree({ moduleSpecifier, importHook, shouldImport, visitedSpecifiers, }: {
    moduleSpecifier: string;
    importHook: import("./parseForPolicy").ImportHookFn;
    shouldImport?: import("./parseForPolicy").ShouldImportFn | undefined;
    visitedSpecifiers?: Set<string> | undefined;
}): AsyncIterableIterator<import("./moduleRecord").LavamoatModuleRecord>;
//# sourceMappingURL=walk.d.ts.map