import AppCLI from '@gluestack-v2/framework-cli/build/helpers/lib/app';
import BaseGluestackPlugin from '@gluestack-v2/framework-cli/build/plugin/BaseGluestackPlugin';
import IInstance from '@gluestack-v2/framework-cli/build/types/plugin/interface/IInstance';
import IGlueStorePlugin from '@gluestack-v2/framework-cli/build/types/store/interface/IGluePluginStore';
export declare class GlueStackPlugin extends BaseGluestackPlugin {
    type: 'stateless' | 'stateful' | 'devonly';
    constructor(app: AppCLI, gluePluginStore: IGlueStorePlugin);
    init(): void;
    destroy(): void;
    getName(): string;
    getVersion(): string;
    getType(): 'stateless' | 'stateful' | 'devonly';
    runPostInstall(instanceName: string): Promise<void>;
    createInstance(key: string, gluePluginStore: IGlueStorePlugin, installationPath?: string): IInstance;
    getInstances(): IInstance[];
    generateService(instancePath: string, instanceName: string): Promise<void>;
    generateQueuesService(queueInstanceName: string): Promise<void>;
    generateMiddlewares(instancePath: string, instanceName: string): Promise<void>;
    generateCrons(cronInstancePath: string, cronInstanceName: string): Promise<void>;
    generateEventsService(): Promise<void>;
    generateDbClientService(cronInstanceName: string): Promise<void>;
    generateStorageClientService(storageClientInstanceName: string): Promise<void>;
}
