import type { PagedAsyncIterableIterator } from "@azure/core-paging";
import type { CapacityReservationGroups } from "../operationsInterfaces/index.js";
import type { ComputeManagementClient } from "../computeManagementClient.js";
import type { CapacityReservationGroup, CapacityReservationGroupsListBySubscriptionOptionalParams, CapacityReservationGroupsListByResourceGroupOptionalParams, CapacityReservationGroupsGetOptionalParams, CapacityReservationGroupsGetResponse, CapacityReservationGroupsCreateOrUpdateOptionalParams, CapacityReservationGroupsCreateOrUpdateResponse, CapacityReservationGroupUpdate, CapacityReservationGroupsUpdateOptionalParams, CapacityReservationGroupsUpdateResponse, CapacityReservationGroupsDeleteOptionalParams } from "../models/index.js";
/** Class containing CapacityReservationGroups operations. */
export declare class CapacityReservationGroupsImpl implements CapacityReservationGroups {
    private readonly client;
    /**
     * Initialize a new instance of the class CapacityReservationGroups class.
     * @param client Reference to the service client
     */
    constructor(client: ComputeManagementClient);
    /**
     * Lists all of the capacity reservation groups in the subscription. Use the nextLink property in the
     * response to get the next page of capacity reservation groups.
     * @param options The options parameters.
     */
    listBySubscription(options?: CapacityReservationGroupsListBySubscriptionOptionalParams): PagedAsyncIterableIterator<CapacityReservationGroup>;
    private listBySubscriptionPagingPage;
    private listBySubscriptionPagingAll;
    /**
     * Lists all of the capacity reservation groups in the specified resource group. Use the nextLink
     * property in the response to get the next page of capacity reservation groups.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param options The options parameters.
     */
    listByResourceGroup(resourceGroupName: string, options?: CapacityReservationGroupsListByResourceGroupOptionalParams): PagedAsyncIterableIterator<CapacityReservationGroup>;
    private listByResourceGroupPagingPage;
    private listByResourceGroupPagingAll;
    /**
     * Lists all of the capacity reservation groups in the subscription. Use the nextLink property in the
     * response to get the next page of capacity reservation groups.
     * @param options The options parameters.
     */
    private _listBySubscription;
    /**
     * Lists all of the capacity reservation groups in the specified resource group. Use the nextLink
     * property in the response to get the next page of capacity reservation groups.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param options The options parameters.
     */
    private _listByResourceGroup;
    /**
     * The operation that retrieves information about a capacity reservation group.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param capacityReservationGroupName The name of the capacity reservation group.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, capacityReservationGroupName: string, options?: CapacityReservationGroupsGetOptionalParams): Promise<CapacityReservationGroupsGetResponse>;
    /**
     * The operation to create or update a capacity reservation group. When updating a capacity reservation
     * group, only tags and sharing profile may be modified. Please refer to
     * https://aka.ms/CapacityReservation for more details.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param capacityReservationGroupName The name of the capacity reservation group.
     * @param parameters Parameters supplied to the Create capacity reservation Group.
     * @param options The options parameters.
     */
    createOrUpdate(resourceGroupName: string, capacityReservationGroupName: string, parameters: CapacityReservationGroup, options?: CapacityReservationGroupsCreateOrUpdateOptionalParams): Promise<CapacityReservationGroupsCreateOrUpdateResponse>;
    /**
     * The operation to update a capacity reservation group. When updating a capacity reservation group,
     * only tags and sharing profile may be modified.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param capacityReservationGroupName The name of the capacity reservation group.
     * @param parameters Parameters supplied to the Update capacity reservation Group operation.
     * @param options The options parameters.
     */
    update(resourceGroupName: string, capacityReservationGroupName: string, parameters: CapacityReservationGroupUpdate, options?: CapacityReservationGroupsUpdateOptionalParams): Promise<CapacityReservationGroupsUpdateResponse>;
    /**
     * The operation to delete a capacity reservation group. This operation is allowed only if all the
     * associated resources are disassociated from the reservation group and all capacity reservations
     * under the reservation group have also been deleted. Please refer to
     * https://aka.ms/CapacityReservation for more details.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param capacityReservationGroupName The name of the capacity reservation group.
     * @param options The options parameters.
     */
    delete(resourceGroupName: string, capacityReservationGroupName: string, options?: CapacityReservationGroupsDeleteOptionalParams): Promise<void>;
    /**
     * ListBySubscriptionNext
     * @param nextLink The nextLink from the previous successful call to the ListBySubscription method.
     * @param options The options parameters.
     */
    private _listBySubscriptionNext;
    /**
     * ListByResourceGroupNext
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param nextLink The nextLink from the previous successful call to the ListByResourceGroup method.
     * @param options The options parameters.
     */
    private _listByResourceGroupNext;
}
//# sourceMappingURL=capacityReservationGroups.d.ts.map