import { type AstNode } from './util'; /** * Options for the require-tagged-firestore-constraints rule. */ export interface FirebaseRequireTaggedFirestoreConstraintsRuleOptions { readonly constraintNames?: readonly string[]; readonly additionalConstraintNames?: readonly string[]; readonly allowedImportSources?: readonly string[]; readonly markerTag?: string; } /** * ESLint rule definition for require-tagged-firestore-constraints. */ export interface FirebaseRequireTaggedFirestoreConstraintsRuleDefinition { readonly meta: { readonly type: 'problem'; readonly fixable: undefined; readonly docs: { readonly description: string; readonly recommended: boolean; }; readonly messages: Readonly>; readonly schema: readonly object[]; }; create(context: { options: FirebaseRequireTaggedFirestoreConstraintsRuleOptions[]; report: (descriptor: { node: AstNode; messageId: string; data?: Record; }) => void; sourceCode: AstNode; }): Record void>; } /** * ESLint rule that forbids inline `@dereekb/firebase` Firestore constraint factory calls * (`where`, `orderBy`, `limit`, ...) outside a function whose leading JSDoc carries the * `@dbxModelFirebaseIndex` marker. The dbx-components-mcp index extractor only sees * constraints inside tagged factories — anything else is invisible to index generation * and must be extracted into a dedicated `*Query` factory. * * Not auto-fixable: extracting an inline constraint into a new function requires choosing * a name, signature, and call-site replacement that are outside the safe scope of an ESLint * autofix. */ export declare const FIREBASE_REQUIRE_TAGGED_FIRESTORE_CONSTRAINTS_RULE: FirebaseRequireTaggedFirestoreConstraintsRuleDefinition;