import { type AstNode } from './util'; /** * Options for the require-dbx-model-firebase-index-valid-dispatcher rule. */ export interface FirebaseRequireDbxModelFirebaseIndexValidDispatcherRuleOptions { readonly constraintNames?: readonly string[]; readonly allowedImportSources?: readonly string[]; readonly markerTag?: string; readonly dispatcherTag?: string; readonly presumedTaggedSuffix?: string; } /** * ESLint rule definition for require-dbx-model-firebase-index-valid-dispatcher. */ export interface FirebaseRequireDbxModelFirebaseIndexValidDispatcherRuleDefinition { 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: FirebaseRequireDbxModelFirebaseIndexValidDispatcherRuleOptions[]; report: (descriptor: { node: AstNode; messageId: string; data?: Record; }) => void; sourceCode: AstNode; }): Record void>; } /** * ESLint rule enforcing that `@dbxModelFirebaseIndexDispatcher`-tagged factories delegate to * other `@dbxModelFirebaseIndex`-tagged query factories instead of building constraints directly. * * A dispatcher must never: * * 1. Call a `@dereekb/firebase` constraint factory (`where`/`orderBy`/`limit`/...) directly. * 2. Construct its own `FirestoreQueryConstraint[]` array via `[].push(...)`-style assembly. * * Permitted bodies return another tagged factory's result directly, spread several tagged * factories' results into a return array, or use a conditional to pick between tagged * factories — matching the dispatcher pattern documented at * `packages/dbx-components-mcp/src/tools/validate-app-model-firebase-index.tool.ts`. * * Not auto-fixable: extracting an inline constraint into a sibling tagged factory requires * choosing a name + signature + call-site replacement that is outside the safe scope of an * ESLint autofix. */ export declare const FIREBASE_REQUIRE_DBX_MODEL_FIREBASE_INDEX_VALID_DISPATCHER_RULE: FirebaseRequireDbxModelFirebaseIndexValidDispatcherRuleDefinition;