import { type AstNode } from './util'; /** * Type-reference name that triggers this rule. Variables whose declared type is * `ModelFirebaseCrudFunctionConfigMap` will have their * initializer validated against the structure of `ConfigType`. */ export declare const MODEL_FIREBASE_CRUD_FUNCTION_CONFIG_MAP_TYPE_NAME = "ModelFirebaseCrudFunctionConfigMap"; /** * CRUD verb names supported by `ModelFirebaseCrudFunctionConfigMap`. Mirrors the * `create | read | update | delete | query | invoke` verbs in the type definition at * `packages/firebase/src/lib/client/function/model.function.factory.ts`. */ export declare const DEFAULT_CRUD_VERB_NAMES: readonly string[]; /** * Options for the require-complete-crud-function-config-map rule. */ export interface FirebaseRequireCompleteCrudFunctionConfigMapRuleOptions { readonly typeName?: string; readonly verbNames?: readonly string[]; } /** * ESLint rule definition for require-complete-crud-function-config-map. */ export interface FirebaseRequireCompleteCrudFunctionConfigMapRuleDefinition { 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: FirebaseRequireCompleteCrudFunctionConfigMapRuleOptions[]; report: (descriptor: { node: AstNode; messageId: string; data?: Record; }) => void; }): Record void>; } /** * ESLint rule that verifies every `ModelFirebaseCrudFunctionConfigMap` * variable initializer is structurally complete against its companion `ConfigType` * defined in the same file. * * The rule walks the type alias for `ConfigType` (e.g., `NotificationBoxModelCrudFunctionsConfig`), * builds the expected set of model keys, verbs, and specifiers, and then compares it * against the object-literal initializer of the variable. Each mismatch — missing model * key, missing verb, missing specifier, disabled-but-present key, etc. — is reported as * an error so the const stays in sync with its companion type even when the TypeScript * mapped-type enforcement decays in larger codebases. * * Same-file resolution only: the companion type must be declared in the same source * file as the const (matching the convention in `notification.api.ts`, `oidcmodel.api.ts`, * `storagefile.api.ts`). When the type cannot be located, the rule reports * `configTypeNotFound`. */ export declare const FIREBASE_REQUIRE_COMPLETE_CRUD_FUNCTION_CONFIG_MAP_RULE: FirebaseRequireCompleteCrudFunctionConfigMapRuleDefinition;