import { IFileSystemService } from '../services/file-system.service'; import { ILoggerService } from '../services/logger.service'; import { IConfigurationService } from '../services/configuration.service'; import { ITemplateService } from '../services/template.service'; import { IPromptService } from '../services/prompt.service'; import { IWorkspaceService } from '../services/workspace.service'; import { IGitService } from '../services/git.service'; import { GahEvent, ExtractEventPayload, GahEventType } from './gah-event'; import { GahPluginConfig } from './gah-plugin-config'; import { IExecutionService } from '../services/execution.service'; import { GahFileData } from './install-helper/gah-file-data'; export declare abstract class GahPlugin { protected readonly name: string; config: GahPluginConfig; protected fileSystemService: IFileSystemService; protected loggerService: ILoggerService; protected configurationService: IConfigurationService; protected templateService: ITemplateService; protected promptService: IPromptService; protected workspaceService: IWorkspaceService; protected executionService: IExecutionService; protected gitService: IGitService; private pluginService; constructor(pluginName: string); abstract onInit(): void; abstract onInstall(existingSettings?: GahPluginConfig): Promise; protected registerEventListener(type: T, handler: (payload: ExtractEventPayload) => Promise | void | boolean): void; protected registerCommandHandler(commandName: string, handler: (args: string[], gahFile?: GahFileData) => Promise | boolean): void; protected storeData(key: string, data: T): void; protected readData(key: string, fromOtherPlugin?: string): T; }