import { ExtensionContext } from '../extension';
import { SourceFile } from 'ts-morph';
export declare abstract class PluginExtension<T extends ExtensionContext = ExtensionContext> {
    abstract get name(): string;
    afterInitialize?(context: T): void;
    afterAnnotationAnalysis?(sourceFile: SourceFile, filePath: string, context: T): void;
    afterCodeGeneration?(context: T): void;
    afterRouterMapBuilding?(context: T): void;
    afterConfigUpdate?(context: T): void;
    afterObfuscationProcess?(context: T): void;
    afterResourceProcess?(context: T): void;
    afterCompletion?(context: T): void;
}
