/** * @angular-modernizer/plugin-angular - Main Plugin * * The main entry point for the Angular-specific analysis plugin. * Provides analysis rules for Angular-specific best practices and performance optimizations. */ import type { Plugin, AnalysisRule, TransformRule, ValidationRule, IKernel } from '@angular-modernizer/plugin-system'; /** * Angular-Specific Analysis Plugin * * @remarks * This plugin provides analysis rules for Angular-specific best practices, * performance optimizations, and framework-specific violations. * * ## Current Rules * * - {@link MissingOnPushRule}: Detects Angular components missing OnPush change detection * - {@link PerformanceViolationRule}: Detects memory leaks and performance issues * - {@link LifecycleHookRule}: Detects improper lifecycle hook usage and missing cleanup * - {@link TemplateComplexityRule}: Detects complex operations in templates causing side effects * - {@link ImmutableInputViolationRule}: Detects mutation of `` properties breaking OnPush * - {@link MissingTrackByRule}: Detects ngFor directives without trackBy functions * - {@link ServiceWithoutInjectableRule}: Detects services without `` decorator * - {@link ComponentWithoutSelectorRule}: Detects components without selector property * - {@link DirectiveWithoutSelectorRule}: Detects directives without selector property * - {@link PipeWithoutNameRule}: Detects pipes without name property * - {@link AsyncPipeMisuseRule}: Detects incorrect usage of async pipe * - {@link UnnecessaryChangeDetectionRule}: Detects components using Default change detection unnecessarily * - {@link MissingReturnTypeRule}: Detects methods missing return type annotations * - {@link TooManyInputsRule}: Detects components with too many `` properties * - {@link RxJSOptimizationRule}: Detects inefficient RxJS operator usage and optimization opportunities * - {@link BundleSizeOptimizationRule}: Detects bundle size optimization opportunities for faster initial load times * - {@link DataHandlingStrategyRule}: Detects inefficient data processing strategies and suggests server-side alternatives * - {@link TypeSafetyAnalysisRule}: Detects explicit any types, untyped parameters, missing return types, and untyped properties * - {@link AnyToInterfaceAnalysisRule}: Detects `any`-typed parameters and class properties that can be replaced with generated interfaces * - {@link UntypedDynamicComponentRule}: Detects implicit contracts via untyped `ComponentRef.instance` member access * - {@link ComponentWrapperInstantiationRule}: Direct `new X()` instantiation of wrapper/adapter classes that should be injected via DI * - {@link DtoDirectInstantiationRule}: Direct `new X()` instantiation of DTO/Response/Result classes * - {@link MagicStringSelectorRule}: Magic string selector arguments passed to dynamic component loading methods * * ## Future Rules (Planned) * * @see {@link MissingOnPushRule} for the OnPush change detection rule */ export declare class AngularPlugin implements Plugin { /** * Unique plugin identifier. */ readonly name = "@angular-modernizer/plugin-angular"; private ruleConfigs; /** * Plugin version (from package.json). */ readonly version = "0.1.0"; /** * Plugin description. */ readonly description = "Provides Angular-specific analysis for best practices and performance"; /** * Plugin author. */ readonly author = "Angular Modernization Platform"; /** * Initialize the plugin. * * @param kernel - The Kernel instance for accessing infrastructure */ initialize(kernel: IKernel): Promise; /** * Get all analysis rules provided by this plugin. * * @returns Array of analysis rules for Angular-specific violations */ getAnalysisRules(): AnalysisRule[]; /** * Get all transformation rules provided by this plugin. * * @returns Array of transformation rules for Angular-specific conversions */ getTransformRules(): TransformRule[]; /** * Get all validation rules provided by this plugin. * * @returns Empty array (no validation rules yet) */ getValidationRules(): ValidationRule[]; } //# sourceMappingURL=angular-plugin.d.ts.map