import type { IQService } from 'angular';
import type { Application } from '../application';
import type { ProviderServiceDelegate } from '../cloudProvider';
import type { IArtifactExtractor, ICluster, IServerGroup } from '../domain';
export declare class ClusterService {
    private $q;
    private serverGroupTransformer;
    private providerServiceDelegate;
    static $inject: string[];
    constructor($q: IQService, serverGroupTransformer: any, providerServiceDelegate: ProviderServiceDelegate);
    loadServerGroups(application: Application): PromiseLike<IServerGroup[]>;
    private reconcileClusterDeepLink;
    private generateServerGroupLookupKey;
    addServerGroupsToApplication(application: Application, serverGroups?: IServerGroup[]): IServerGroup[];
    createServerGroupClusters(serverGroups: IServerGroup[]): ICluster[];
    addExecutionsToServerGroups(application: Application): void;
    addTasksToServerGroups(application: Application): void;
    isDeployingArtifact(cluster: ICluster): boolean;
    defaultArtifactExtractor(): IArtifactExtractor;
    getArtifactExtractor(cloudProvider: string): IArtifactExtractor;
    extractArtifacts(cluster: ICluster): string[];
    removeArtifact(cluster: ICluster, artifactId: string): void;
    private getClusters;
    private extractServerGroupNameFromContext;
    extractRegionFromContext(context: any): string;
    private findStagesWithServerGroupInfo;
    private addProvidersAndServerGroupsToInstances;
    private addNameParts;
    private addHealthStatusCheck;
    private addHealthCountsToCluster;
}
export declare const CLUSTER_SERVICE = "spinnaker.core.cluster.service";
