import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { CloudServices } from "../operationsInterfaces/index.js";
import { ComputeManagementClient } from "../computeManagementClient.js";
import { SimplePollerLike, OperationState } from "@azure/core-lro";
import { CloudService, CloudServicesListAllOptionalParams, CloudServicesListOptionalParams, CloudServicesCreateOrUpdateOptionalParams, CloudServicesCreateOrUpdateResponse, CloudServicesUpdateOptionalParams, CloudServicesUpdateResponse, CloudServicesDeleteOptionalParams, CloudServicesGetOptionalParams, CloudServicesGetResponse, CloudServicesGetInstanceViewOptionalParams, CloudServicesGetInstanceViewResponse, CloudServicesStartOptionalParams, CloudServicesPowerOffOptionalParams, CloudServicesRestartOptionalParams, CloudServicesReimageOptionalParams, CloudServicesRebuildOptionalParams, CloudServicesDeleteInstancesOptionalParams } from "../models/index.js";
/** Class containing CloudServices operations. */
export declare class CloudServicesImpl implements CloudServices {
    private readonly client;
    /**
     * Initialize a new instance of the class CloudServices class.
     * @param client Reference to the service client
     */
    constructor(client: ComputeManagementClient);
    /**
     * Gets a list of all cloud services in the subscription, regardless of the associated resource group.
     * Use nextLink property in the response to get the next page of Cloud Services. Do this till nextLink
     * is null to fetch all the Cloud Services.
     * @param options The options parameters.
     */
    listAll(options?: CloudServicesListAllOptionalParams): PagedAsyncIterableIterator<CloudService>;
    private listAllPagingPage;
    private listAllPagingAll;
    /**
     * Gets a list of all cloud services under a resource group. Use nextLink property in the response to
     * get the next page of Cloud Services. Do this till nextLink is null to fetch all the Cloud Services.
     * @param resourceGroupName Name of the resource group.
     * @param options The options parameters.
     */
    list(resourceGroupName: string, options?: CloudServicesListOptionalParams): PagedAsyncIterableIterator<CloudService>;
    private listPagingPage;
    private listPagingAll;
    /**
     * Create or update a cloud service. Please note some properties can be set only during cloud service
     * creation.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginCreateOrUpdate(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesCreateOrUpdateOptionalParams): Promise<SimplePollerLike<OperationState<CloudServicesCreateOrUpdateResponse>, CloudServicesCreateOrUpdateResponse>>;
    /**
     * Create or update a cloud service. Please note some properties can be set only during cloud service
     * creation.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginCreateOrUpdateAndWait(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesCreateOrUpdateOptionalParams): Promise<CloudServicesCreateOrUpdateResponse>;
    /**
     * Update a cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginUpdate(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesUpdateOptionalParams): Promise<SimplePollerLike<OperationState<CloudServicesUpdateResponse>, CloudServicesUpdateResponse>>;
    /**
     * Update a cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginUpdateAndWait(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesUpdateOptionalParams): Promise<CloudServicesUpdateResponse>;
    /**
     * Deletes a cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginDelete(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesDeleteOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Deletes a cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginDeleteAndWait(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesDeleteOptionalParams): Promise<void>;
    /**
     * Display information about a cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesGetOptionalParams): Promise<CloudServicesGetResponse>;
    /**
     * Gets the status of a cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    getInstanceView(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesGetInstanceViewOptionalParams): Promise<CloudServicesGetInstanceViewResponse>;
    /**
     * Gets a list of all cloud services in the subscription, regardless of the associated resource group.
     * Use nextLink property in the response to get the next page of Cloud Services. Do this till nextLink
     * is null to fetch all the Cloud Services.
     * @param options The options parameters.
     */
    private _listAll;
    /**
     * Gets a list of all cloud services under a resource group. Use nextLink property in the response to
     * get the next page of Cloud Services. Do this till nextLink is null to fetch all the Cloud Services.
     * @param resourceGroupName Name of the resource group.
     * @param options The options parameters.
     */
    private _list;
    /**
     * Starts the cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginStart(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesStartOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Starts the cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginStartAndWait(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesStartOptionalParams): Promise<void>;
    /**
     * Power off the cloud service. Note that resources are still attached and you are getting charged for
     * the resources.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginPowerOff(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesPowerOffOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Power off the cloud service. Note that resources are still attached and you are getting charged for
     * the resources.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginPowerOffAndWait(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesPowerOffOptionalParams): Promise<void>;
    /**
     * Restarts one or more role instances in a cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginRestart(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesRestartOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Restarts one or more role instances in a cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginRestartAndWait(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesRestartOptionalParams): Promise<void>;
    /**
     * Reimage asynchronous operation reinstalls the operating system on instances of web roles or worker
     * roles.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginReimage(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesReimageOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Reimage asynchronous operation reinstalls the operating system on instances of web roles or worker
     * roles.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginReimageAndWait(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesReimageOptionalParams): Promise<void>;
    /**
     * Rebuild Role Instances reinstalls the operating system on instances of web roles or worker roles and
     * initializes the storage resources that are used by them. If you do not want to initialize storage
     * resources, you can use Reimage Role Instances.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginRebuild(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesRebuildOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Rebuild Role Instances reinstalls the operating system on instances of web roles or worker roles and
     * initializes the storage resources that are used by them. If you do not want to initialize storage
     * resources, you can use Reimage Role Instances.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginRebuildAndWait(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesRebuildOptionalParams): Promise<void>;
    /**
     * Deletes role instances in a cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginDeleteInstances(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesDeleteInstancesOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Deletes role instances in a cloud service.
     * @param resourceGroupName Name of the resource group.
     * @param cloudServiceName Name of the cloud service.
     * @param options The options parameters.
     */
    beginDeleteInstancesAndWait(resourceGroupName: string, cloudServiceName: string, options?: CloudServicesDeleteInstancesOptionalParams): Promise<void>;
    /**
     * ListAllNext
     * @param nextLink The nextLink from the previous successful call to the ListAll method.
     * @param options The options parameters.
     */
    private _listAllNext;
    /**
     * ListNext
     * @param resourceGroupName Name of the resource group.
     * @param nextLink The nextLink from the previous successful call to the List method.
     * @param options The options parameters.
     */
    private _listNext;
}
//# sourceMappingURL=cloudServices.d.ts.map