import { SymbolTable } from "../../symbolTable.js"; import type { AgencyConfig } from "../../config.js"; import type { SpliceDiagnostic } from "./types.js"; /** * Refuse a generator that can reach a risky operation, and refuse one whose * effects cannot be read at all. * * The second half carries the weight. The effect walk reads syntax, so it * cannot see through a compile-time splice, a function received as a parameter, * a function reference held in a variable, or a file that did not parse. An * empty list from a reading that saw none of those is not evidence of safety. * * Scoped to what the generator reaches BY CALLING. Every file reaches the * prelude and passing a function as a value is ordinary Agency, so a * file-scoped rule would refuse every generator, which is the same objection * the comment on checkGeneratorEligible raises against a whole-closure test. */ export declare function checkGeneratorEffects(generatorPath: string, generatorName: string, config?: AgencyConfig, symbolTable?: SymbolTable): SpliceDiagnostic | null;