import { type AstNode } from './util'; /** * ESLint rule definition shape used by `require-complete-on-destroy`. */ export interface DbxWebRequireCompleteOnDestroyRuleDefinition { readonly meta: { readonly type: 'problem'; readonly fixable: 'code'; readonly docs: { readonly description: string; readonly recommended: boolean; }; readonly messages: { readonly missingCompleteOnDestroy: string; }; readonly schema: readonly object[]; }; create(context: AstNode): Record void>; } /** * ESLint rule that requires class-field initializers of `new Subject(...)`, * `new BehaviorSubject(...)`, `new ReplaySubject(...)`, and `new AsyncSubject(...)` * to be wrapped with `completeOnDestroy(...)` from `@dereekb/dbx-core` on * `@Component` / `@Directive` / `@Pipe` classes. * * Fires only when the Subject identifier is imported from `rxjs`. * * Auto-fix: * - Wraps the initializer with `completeOnDestroy(...)`. * - Inserts the `completeOnDestroy` named import from `@dereekb/dbx-core` if missing. * - Removes any matching `this..complete();` line from the same class's `ngOnDestroy`. */ export declare const DBX_WEB_REQUIRE_COMPLETE_ON_DESTROY_RULE: DbxWebRequireCompleteOnDestroyRuleDefinition;