import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { ProximityPlacementGroups } from "../operationsInterfaces/index.js";
import { ComputeManagementClient } from "../computeManagementClient.js";
import { ProximityPlacementGroup, ProximityPlacementGroupsListBySubscriptionOptionalParams, ProximityPlacementGroupsListByResourceGroupOptionalParams, ProximityPlacementGroupsGetOptionalParams, ProximityPlacementGroupsGetResponse, ProximityPlacementGroupsCreateOrUpdateOptionalParams, ProximityPlacementGroupsCreateOrUpdateResponse, ProximityPlacementGroupUpdate, ProximityPlacementGroupsUpdateOptionalParams, ProximityPlacementGroupsUpdateResponse, ProximityPlacementGroupsDeleteOptionalParams } from "../models/index.js";
/** Class containing ProximityPlacementGroups operations. */
export declare class ProximityPlacementGroupsImpl implements ProximityPlacementGroups {
    private readonly client;
    /**
     * Initialize a new instance of the class ProximityPlacementGroups class.
     * @param client Reference to the service client
     */
    constructor(client: ComputeManagementClient);
    /**
     * Lists all proximity placement groups in a subscription.
     * @param options The options parameters.
     */
    listBySubscription(options?: ProximityPlacementGroupsListBySubscriptionOptionalParams): PagedAsyncIterableIterator<ProximityPlacementGroup>;
    private listBySubscriptionPagingPage;
    private listBySubscriptionPagingAll;
    /**
     * Lists all proximity placement groups in a resource group.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param options The options parameters.
     */
    listByResourceGroup(resourceGroupName: string, options?: ProximityPlacementGroupsListByResourceGroupOptionalParams): PagedAsyncIterableIterator<ProximityPlacementGroup>;
    private listByResourceGroupPagingPage;
    private listByResourceGroupPagingAll;
    /**
     * Lists all proximity placement groups in a subscription.
     * @param options The options parameters.
     */
    private _listBySubscription;
    /**
     * Lists all proximity placement groups in a resource group.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param options The options parameters.
     */
    private _listByResourceGroup;
    /**
     * Retrieves information about a proximity placement group .
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param proximityPlacementGroupName The name of the proximity placement group.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, proximityPlacementGroupName: string, options?: ProximityPlacementGroupsGetOptionalParams): Promise<ProximityPlacementGroupsGetResponse>;
    /**
     * Create or update a proximity placement group.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param proximityPlacementGroupName The name of the proximity placement group.
     * @param parameters Parameters supplied to the Create Proximity Placement Group operation.
     * @param options The options parameters.
     */
    createOrUpdate(resourceGroupName: string, proximityPlacementGroupName: string, parameters: ProximityPlacementGroup, options?: ProximityPlacementGroupsCreateOrUpdateOptionalParams): Promise<ProximityPlacementGroupsCreateOrUpdateResponse>;
    /**
     * Update a proximity placement group.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param proximityPlacementGroupName The name of the proximity placement group.
     * @param parameters Parameters supplied to the Update Proximity Placement Group operation.
     * @param options The options parameters.
     */
    update(resourceGroupName: string, proximityPlacementGroupName: string, parameters: ProximityPlacementGroupUpdate, options?: ProximityPlacementGroupsUpdateOptionalParams): Promise<ProximityPlacementGroupsUpdateResponse>;
    /**
     * Delete a proximity placement group.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param proximityPlacementGroupName The name of the proximity placement group.
     * @param options The options parameters.
     */
    delete(resourceGroupName: string, proximityPlacementGroupName: string, options?: ProximityPlacementGroupsDeleteOptionalParams): 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=proximityPlacementGroups.d.ts.map