import { type AstNode } from './util'; /** * Default subpath segment (relative to an app source root) below which the * rule expects model-group function folders. Matches the convention used by * `/src/app/function//`. */ export declare const DEFAULT_FUNCTION_DIR_SEGMENT = "src/app/function"; /** * Options for the require-canonical-api-spec-filename rule. */ export interface FirebaseRequireCanonicalApiSpecFilenameRuleOptions { /** * Path-suffix marker that anchors the rule to API function folders. * Defaults to `'src/app/function'`. Any `.spec.ts` whose path contains * `//` is classified; everything else is ignored. */ readonly functionDirSegment?: string; } /** * ESLint rule definition for require-canonical-api-spec-filename. */ export interface FirebaseRequireCanonicalApiSpecFilenameRuleDefinition { readonly meta: { readonly type: 'suggestion'; readonly fixable: undefined; readonly docs: { readonly description: string; readonly recommended: boolean; }; readonly messages: Readonly>; readonly schema: readonly object[]; }; create(context: { options: FirebaseRequireCanonicalApiSpecFilenameRuleOptions[]; filename: string; report: (descriptor: { node: AstNode; messageId: string; data?: Record; }) => void; }): Record void>; } /** * ESLint rule that enforces the canonical naming convention for Firebase * Functions API spec files: every `.spec.ts` under * `/src/app/function//` must be `.crud[....].spec.ts` * or `.scenario[....].spec.ts`. Drift forms surface a rename * suggestion derived from the shared `classifySpecFile` classifier in * `@dereekb/util`, so this rule and the `dbx_model_test_validate_app` MCP * tool never diverge. * * Not auto-fixable: renaming files (and updating any imports/snapshots they * carry) is outside the safe scope of an ESLint autofix. */ export declare const FIREBASE_REQUIRE_CANONICAL_API_SPEC_FILENAME_RULE: FirebaseRequireCanonicalApiSpecFilenameRuleDefinition;