/** * Minimal structural types for the slice of the ESLint rule API we use. * Deliberately NOT importing `eslint` — this module must be importable * (and its default export usable as a plain config object) without eslint * installed as a runtime dependency. */ interface EslintRuleContext { getSourceCode(): { getText(): string; }; report(descriptor: { node: unknown; message: string; loc?: { line: number; column: number; }; }): void; } interface EslintRuleModule { meta: { type: string; docs: { description: string; }; schema: unknown[]; }; create(context: EslintRuleContext): { Program(node: unknown): void; }; } /** * Flat-config preset: `eslint.config.js` consumers can spread this array in. * Scoped to `**\/*.fn.js` — the convention for extracted pipeline * function_handler bodies (see Task 11's `rules validate`). */ declare const bfflessSandboxLintPreset: { files: string[]; plugins: { bffless: { rules: { 'no-sandbox-violations': EslintRuleModule; }; }; }; rules: { 'bffless/no-sandbox-violations': string; }; }[]; export default bfflessSandboxLintPreset;