import AppCLI from '../helpers/lib/app';
import IPlugin from '../types/plugin/interface/IPlugin';
import IInstance from '../types/plugin/interface/IInstance';
import IGlueStorePlugin from '../types/store/interface/IGluePluginStore';
export default abstract class BaseGluestackPluginInstance implements IInstance {
    app: AppCLI;
    name: string;
    callerPlugin: IPlugin;
    isOfTypeInstance: boolean;
    gluePluginStore: IGlueStorePlugin;
    installationPath: string;
    constructor(app: AppCLI, callerPlugin: IPlugin, name: string, gluePluginStore: IGlueStorePlugin, installationPath: string);
    abstract init(): void;
    abstract destroy(): void;
    build(): Promise<void>;
    prepare(): Promise<void>;
    getName(): string;
    getCallerPlugin(): IPlugin;
    getDestinationPath(): string;
    getPluginEnvironment(): any;
    getSourcePath(): string;
    getWorkspacePath(): string;
    get _workspacePath(): string;
    get _sourcePath(): string;
    get _destinationPath(): string;
    updateSourcePackageJSON(): Promise<void>;
    updateDestinationPackageJSON(): Promise<void>;
    filterEnvData(envPath: string, pluginEnv: 'server' | 'client'): Promise<{
        [k: string]: any;
    }>;
    generateEnvDataFromObject(envObject: any): string;
    generateEnvFiles(): Promise<void>;
    updateRootPackageJSONWithSourcePath(): Promise<void>;
    updateRootPackageJSONWithDestinationPath(): Promise<void>;
    addServiceToWorkspaces(workspacePath: string): Promise<void>;
    buildPackage(packagePath: string): Promise<void>;
    updateWorkspacePackageJSON(): Promise<void>;
    boltInit(): Promise<void>;
    boltUp(servicePlatform: string): Promise<void>;
    buildBeforeWatch(): Promise<void>;
    watch(callback?: Function): Promise<void>;
    get _instanceType(): any;
}
