import type { PagedAsyncIterableIterator } from "@azure/core-paging";
import type { SimplePollerLike, OperationState } from "@azure/core-lro";
import type { CapacityReservation, CapacityReservationsListByCapacityReservationGroupOptionalParams, CapacityReservationsGetOptionalParams, CapacityReservationsGetResponse, CapacityReservationsCreateOrUpdateOptionalParams, CapacityReservationsCreateOrUpdateResponse, CapacityReservationUpdate, CapacityReservationsUpdateOptionalParams, CapacityReservationsUpdateResponse, CapacityReservationsDeleteOptionalParams } from "../models/index.js";
/** Interface representing a CapacityReservations. */
export interface CapacityReservations {
    /**
     * Lists all of the capacity reservations in the specified capacity reservation group. Use the nextLink
     * property in the response to get the next page of capacity reservations.
     * @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.
     */
    listByCapacityReservationGroup(resourceGroupName: string, capacityReservationGroupName: string, options?: CapacityReservationsListByCapacityReservationGroupOptionalParams): PagedAsyncIterableIterator<CapacityReservation>;
    /**
     * The operation that retrieves information about the capacity reservation.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param capacityReservationGroupName The name of the capacity reservation group.
     * @param capacityReservationName The name of the capacity reservation.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, capacityReservationGroupName: string, capacityReservationName: string, options?: CapacityReservationsGetOptionalParams): Promise<CapacityReservationsGetResponse>;
    /**
     * The operation to create or update a capacity reservation. Please note some properties can be set
     * only during capacity reservation creation. 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 capacityReservationName The name of the capacity reservation.
     * @param parameters Parameters supplied to the Create capacity reservation.
     * @param options The options parameters.
     */
    beginCreateOrUpdate(resourceGroupName: string, capacityReservationGroupName: string, capacityReservationName: string, parameters: CapacityReservation, options?: CapacityReservationsCreateOrUpdateOptionalParams): Promise<SimplePollerLike<OperationState<CapacityReservationsCreateOrUpdateResponse>, CapacityReservationsCreateOrUpdateResponse>>;
    /**
     * The operation to create or update a capacity reservation. Please note some properties can be set
     * only during capacity reservation creation. 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 capacityReservationName The name of the capacity reservation.
     * @param parameters Parameters supplied to the Create capacity reservation.
     * @param options The options parameters.
     */
    beginCreateOrUpdateAndWait(resourceGroupName: string, capacityReservationGroupName: string, capacityReservationName: string, parameters: CapacityReservation, options?: CapacityReservationsCreateOrUpdateOptionalParams): Promise<CapacityReservationsCreateOrUpdateResponse>;
    /**
     * The operation to update a capacity reservation.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param capacityReservationGroupName The name of the capacity reservation group.
     * @param capacityReservationName The name of the capacity reservation.
     * @param parameters Parameters supplied to the Update capacity reservation operation.
     * @param options The options parameters.
     */
    beginUpdate(resourceGroupName: string, capacityReservationGroupName: string, capacityReservationName: string, parameters: CapacityReservationUpdate, options?: CapacityReservationsUpdateOptionalParams): Promise<SimplePollerLike<OperationState<CapacityReservationsUpdateResponse>, CapacityReservationsUpdateResponse>>;
    /**
     * The operation to update a capacity reservation.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param capacityReservationGroupName The name of the capacity reservation group.
     * @param capacityReservationName The name of the capacity reservation.
     * @param parameters Parameters supplied to the Update capacity reservation operation.
     * @param options The options parameters.
     */
    beginUpdateAndWait(resourceGroupName: string, capacityReservationGroupName: string, capacityReservationName: string, parameters: CapacityReservationUpdate, options?: CapacityReservationsUpdateOptionalParams): Promise<CapacityReservationsUpdateResponse>;
    /**
     * The operation to delete a capacity reservation. This operation is allowed only when all the
     * associated resources are disassociated from the capacity reservation. Please refer to
     * https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be
     * deleted after it has been successfully allocated until the schedule end time.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param capacityReservationGroupName The name of the capacity reservation group.
     * @param capacityReservationName The name of the capacity reservation.
     * @param options The options parameters.
     */
    beginDelete(resourceGroupName: string, capacityReservationGroupName: string, capacityReservationName: string, options?: CapacityReservationsDeleteOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * The operation to delete a capacity reservation. This operation is allowed only when all the
     * associated resources are disassociated from the capacity reservation. Please refer to
     * https://aka.ms/CapacityReservation for more details. Note: Block capacity reservations cannot be
     * deleted after it has been successfully allocated until the schedule end time.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param capacityReservationGroupName The name of the capacity reservation group.
     * @param capacityReservationName The name of the capacity reservation.
     * @param options The options parameters.
     */
    beginDeleteAndWait(resourceGroupName: string, capacityReservationGroupName: string, capacityReservationName: string, options?: CapacityReservationsDeleteOptionalParams): Promise<void>;
}
//# sourceMappingURL=capacityReservations.d.ts.map