import type { Application } from '../application/application.model';
import type { IServerGroupCommand } from './configure/common/serverGroupCommandBuilder.service';
import type { ISecurityGroup, IServerGroup, ITask } from '../domain';
import type { IMoniker } from '../naming';
import type { IJob } from '../task/taskExecutor';
export interface ICapacity {
    desired: number | string;
    max: number | string;
    min: number | string;
}
export interface IServerGroupJob extends IJob {
    amiName?: string;
    asgName?: string;
    capacity?: Partial<ICapacity>;
    credentials?: string;
    cloudProvider?: string;
    region?: string;
    securityGroups?: string[];
    serverGroupName?: string;
    type?: string;
    moniker?: IMoniker;
}
export declare class ServerGroupWriter {
    private serverGroupTransformer;
    static $inject: string[];
    constructor(serverGroupTransformer: any);
    cloneServerGroup(command: IServerGroupCommand, application: Application): PromiseLike<ITask>;
    destroyServerGroup(serverGroup: IServerGroup, application: Application, params?: IServerGroupJob): PromiseLike<ITask>;
    disableServerGroup(serverGroup: IServerGroup, appName: string, params?: IServerGroupJob): PromiseLike<ITask>;
    enableServerGroup(serverGroup: IServerGroup, application: Application, params?: IServerGroupJob): PromiseLike<ITask>;
    private getCapacityString;
    mapLoadBalancers(serverGroup: IServerGroup, application: Application, params?: any): PromiseLike<ITask>;
    resizeServerGroup(serverGroup: IServerGroup, application: Application, params?: IServerGroupJob): PromiseLike<ITask>;
    rollbackServerGroup(serverGroup: IServerGroup, application: Application, params?: IServerGroupJob): PromiseLike<ITask>;
    unmapLoadBalancers(serverGroup: IServerGroup, application: Application, params?: any): PromiseLike<ITask>;
    updateSecurityGroups(serverGroup: IServerGroup, securityGroups: ISecurityGroup[], application: Application, hasLaunchTemplate?: boolean): PromiseLike<ITask>;
}
export declare const SERVER_GROUP_WRITER = "spinnaker.core.serverGroup.write.service";
