import { Subject } from 'rxjs';
import type { IServerGroup } from '../../domain';
import type { IMultiInstanceGroup } from '../../instance/instance.write.service';
import type { IMoniker } from '../../naming';
export interface IMultiselectServerGroup {
    key: string;
    account: string;
    region: string;
    provider: string;
    name: string;
    moniker: IMoniker;
}
export declare class MultiselectModel {
    instanceGroups: IMultiInstanceGroup[];
    instancesStream: Subject<void>;
    serverGroups: IMultiselectServerGroup[];
    serverGroupsStream: Subject<void>;
    constructor();
    syncNavigation(): void;
    deselectAllInstances(): void;
    clearAllInstanceGroups(): void;
    clearAllServerGroups(): void;
    clearAll(): void;
    getOrCreateInstanceGroup(serverGroup: IServerGroup): IMultiInstanceGroup;
    makeServerGroupKey(serverGroup: IServerGroup): string;
    serverGroupIsSelected(serverGroup: IServerGroup): boolean;
    toggleServerGroup(serverGroup: IServerGroup): void;
    toggleInstance(serverGroup: IServerGroup, instanceId: string): void;
    toggleSelectAll(serverGroup: IServerGroup, allInstanceIds?: string[]): void;
    instanceIsSelected(serverGroup: IServerGroup, instanceId: string): boolean;
    private isClusterChildState;
}
