import type { Application } from '../application/application.model'; import type { IInstance, ITask } from '../domain'; import type { IJob } from '../task/taskExecutor'; export interface IMultiInstanceGroup { account: string; cloudProvider: string; region: string; serverGroup: string; instanceIds: string[]; loadBalancers?: string[]; instances: IInstance[]; selectAll?: boolean; } export interface IMultiInstanceJob { type: string; cloudProvider: string; instanceIds: string[]; credentials: string; region: string; serverGroupName: string; asgName?: string; loadBalancerNames?: string[]; } export declare class InstanceWriter { static terminateInstance(instance: IInstance, application: Application, params?: IJob): PromiseLike; static terminateInstances(instanceGroups: IMultiInstanceGroup[], application: Application): PromiseLike; private static executeMultiInstanceTask; static rebootInstances(instanceGroups: IMultiInstanceGroup[], application: Application): PromiseLike; static rebootInstance(instance: IInstance, application: Application, params?: any): PromiseLike; static deregisterInstancesFromLoadBalancer(instanceGroups: IMultiInstanceGroup[], application: Application, loadBalancerNames: string[]): PromiseLike; static deregisterInstanceFromLoadBalancer(instance: IInstance, application: Application, params?: any): PromiseLike; static registerInstancesWithLoadBalancer(instanceGroups: IMultiInstanceGroup[], application: Application, loadBalancerNames: string[]): PromiseLike; static registerInstanceWithLoadBalancer(instance: IInstance, application: Application, params?: any): PromiseLike; static enableInstancesInDiscovery(instanceGroups: IMultiInstanceGroup[], application: Application): PromiseLike; static enableInstanceInDiscovery(instance: IInstance, application: Application): PromiseLike; static disableInstancesInDiscovery(instanceGroups: IMultiInstanceGroup[], application: Application): PromiseLike; static disableInstanceInDiscovery(instance: IInstance, application: Application): PromiseLike; static terminateInstancesAndShrinkServerGroups(instanceGroups: IMultiInstanceGroup[], application: Application): PromiseLike; static terminateInstanceAndShrinkServerGroup(instance: IInstance, application: Application, params?: any): PromiseLike; protected static buildMultiInstanceJob(instanceGroups: IMultiInstanceGroup[], type: string, additionalJobProperties?: {}): IMultiInstanceJob[]; protected static buildMultiInstanceDescriptor(jobs: IMultiInstanceJob[], base: string, suffix: string): string; private static convertGroupToJob; private static transform; }