import type { PagedAsyncIterableIterator } from "@azure/core-paging";
import type { DedicatedHosts } from "../operationsInterfaces/index.js";
import type { ComputeManagementClient } from "../computeManagementClient.js";
import type { SimplePollerLike, OperationState } from "@azure/core-lro";
import type { DedicatedHost, DedicatedHostsListByHostGroupOptionalParams, DedicatedHostsListAvailableSizesOptionalParams, DedicatedHostsGetOptionalParams, DedicatedHostsGetResponse, DedicatedHostsCreateOrUpdateOptionalParams, DedicatedHostsCreateOrUpdateResponse, DedicatedHostUpdate, DedicatedHostsUpdateOptionalParams, DedicatedHostsUpdateResponse, DedicatedHostsDeleteOptionalParams, DedicatedHostsRedeployOptionalParams, DedicatedHostsRedeployResponse, DedicatedHostsRestartOptionalParams, DedicatedHostsRestartResponse } from "../models/index.js";
/** Class containing DedicatedHosts operations. */
export declare class DedicatedHostsImpl implements DedicatedHosts {
    private readonly client;
    /**
     * Initialize a new instance of the class DedicatedHosts class.
     * @param client Reference to the service client
     */
    constructor(client: ComputeManagementClient);
    /**
     * Lists all of the dedicated hosts in the specified dedicated host group. Use the nextLink property in
     * the response to get the next page of dedicated hosts.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param options The options parameters.
     */
    listByHostGroup(resourceGroupName: string, hostGroupName: string, options?: DedicatedHostsListByHostGroupOptionalParams): PagedAsyncIterableIterator<DedicatedHost>;
    private listByHostGroupPagingPage;
    private listByHostGroupPagingAll;
    /**
     * Lists all available dedicated host sizes to which the specified dedicated host can be resized. NOTE:
     * The dedicated host sizes provided can be used to only scale up the existing dedicated host.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param options The options parameters.
     */
    listAvailableSizes(resourceGroupName: string, hostGroupName: string, hostName: string, options?: DedicatedHostsListAvailableSizesOptionalParams): PagedAsyncIterableIterator<string>;
    private listAvailableSizesPagingPage;
    private listAvailableSizesPagingAll;
    /**
     * Lists all of the dedicated hosts in the specified dedicated host group. Use the nextLink property in
     * the response to get the next page of dedicated hosts.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param options The options parameters.
     */
    private _listByHostGroup;
    /**
     * Retrieves information about a dedicated host.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, hostGroupName: string, hostName: string, options?: DedicatedHostsGetOptionalParams): Promise<DedicatedHostsGetResponse>;
    /**
     * Create or update a dedicated host .
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param parameters Parameters supplied to the Create Dedicated Host.
     * @param options The options parameters.
     */
    beginCreateOrUpdate(resourceGroupName: string, hostGroupName: string, hostName: string, parameters: DedicatedHost, options?: DedicatedHostsCreateOrUpdateOptionalParams): Promise<SimplePollerLike<OperationState<DedicatedHostsCreateOrUpdateResponse>, DedicatedHostsCreateOrUpdateResponse>>;
    /**
     * Create or update a dedicated host .
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param parameters Parameters supplied to the Create Dedicated Host.
     * @param options The options parameters.
     */
    beginCreateOrUpdateAndWait(resourceGroupName: string, hostGroupName: string, hostName: string, parameters: DedicatedHost, options?: DedicatedHostsCreateOrUpdateOptionalParams): Promise<DedicatedHostsCreateOrUpdateResponse>;
    /**
     * Update a dedicated host .
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param parameters Parameters supplied to the Update Dedicated Host operation.
     * @param options The options parameters.
     */
    beginUpdate(resourceGroupName: string, hostGroupName: string, hostName: string, parameters: DedicatedHostUpdate, options?: DedicatedHostsUpdateOptionalParams): Promise<SimplePollerLike<OperationState<DedicatedHostsUpdateResponse>, DedicatedHostsUpdateResponse>>;
    /**
     * Update a dedicated host .
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param parameters Parameters supplied to the Update Dedicated Host operation.
     * @param options The options parameters.
     */
    beginUpdateAndWait(resourceGroupName: string, hostGroupName: string, hostName: string, parameters: DedicatedHostUpdate, options?: DedicatedHostsUpdateOptionalParams): Promise<DedicatedHostsUpdateResponse>;
    /**
     * Delete a dedicated host.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param options The options parameters.
     */
    beginDelete(resourceGroupName: string, hostGroupName: string, hostName: string, options?: DedicatedHostsDeleteOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Delete a dedicated host.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param options The options parameters.
     */
    beginDeleteAndWait(resourceGroupName: string, hostGroupName: string, hostName: string, options?: DedicatedHostsDeleteOptionalParams): Promise<void>;
    /**
     * Lists all available dedicated host sizes to which the specified dedicated host can be resized. NOTE:
     * The dedicated host sizes provided can be used to only scale up the existing dedicated host.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param options The options parameters.
     */
    private _listAvailableSizes;
    /**
     * Redeploy the dedicated host. The operation will complete successfully once the dedicated host has
     * migrated to a new node and is running. To determine the health of VMs deployed on the dedicated host
     * after the redeploy check the Resource Health Center in the Azure Portal. Please refer to
     * https://docs.microsoft.com/azure/service-health/resource-health-overview for more details.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param options The options parameters.
     */
    beginRedeploy(resourceGroupName: string, hostGroupName: string, hostName: string, options?: DedicatedHostsRedeployOptionalParams): Promise<SimplePollerLike<OperationState<DedicatedHostsRedeployResponse>, DedicatedHostsRedeployResponse>>;
    /**
     * Redeploy the dedicated host. The operation will complete successfully once the dedicated host has
     * migrated to a new node and is running. To determine the health of VMs deployed on the dedicated host
     * after the redeploy check the Resource Health Center in the Azure Portal. Please refer to
     * https://docs.microsoft.com/azure/service-health/resource-health-overview for more details.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param options The options parameters.
     */
    beginRedeployAndWait(resourceGroupName: string, hostGroupName: string, hostName: string, options?: DedicatedHostsRedeployOptionalParams): Promise<DedicatedHostsRedeployResponse>;
    /**
     * Restart the dedicated host. The operation will complete successfully once the dedicated host has
     * restarted and is running. To determine the health of VMs deployed on the dedicated host after the
     * restart check the Resource Health Center in the Azure Portal. Please refer to
     * https://docs.microsoft.com/azure/service-health/resource-health-overview for more details.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param options The options parameters.
     */
    beginRestart(resourceGroupName: string, hostGroupName: string, hostName: string, options?: DedicatedHostsRestartOptionalParams): Promise<SimplePollerLike<OperationState<DedicatedHostsRestartResponse>, DedicatedHostsRestartResponse>>;
    /**
     * Restart the dedicated host. The operation will complete successfully once the dedicated host has
     * restarted and is running. To determine the health of VMs deployed on the dedicated host after the
     * restart check the Resource Health Center in the Azure Portal. Please refer to
     * https://docs.microsoft.com/azure/service-health/resource-health-overview for more details.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param options The options parameters.
     */
    beginRestartAndWait(resourceGroupName: string, hostGroupName: string, hostName: string, options?: DedicatedHostsRestartOptionalParams): Promise<DedicatedHostsRestartResponse>;
    /**
     * ListByHostGroupNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param nextLink The nextLink from the previous successful call to the ListByHostGroup method.
     * @param options The options parameters.
     */
    private _listByHostGroupNext;
    /**
     * ListAvailableSizesNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param hostGroupName The name of the dedicated host group.
     * @param hostName The name of the dedicated host.
     * @param nextLink The nextLink from the previous successful call to the ListAvailableSizes method.
     * @param options The options parameters.
     */
    private _listAvailableSizesNext;
}
//# sourceMappingURL=dedicatedHosts.d.ts.map