import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { PrivateLinkScopes } from "../operationsInterfaces";
import { MonitorClient } from "../monitorClient";
import { PollerLike, PollOperationState } from "@azure/core-lro";
import { AzureMonitorPrivateLinkScope, PrivateLinkScopesListOptionalParams, PrivateLinkScopesListByResourceGroupOptionalParams, PrivateLinkScopesDeleteOptionalParams, PrivateLinkScopesGetOptionalParams, PrivateLinkScopesGetResponse, PrivateLinkScopesCreateOrUpdateOptionalParams, PrivateLinkScopesCreateOrUpdateResponse, TagsResource, PrivateLinkScopesUpdateTagsOptionalParams, PrivateLinkScopesUpdateTagsResponse } from "../models";
/** Class containing PrivateLinkScopes operations. */
export declare class PrivateLinkScopesImpl implements PrivateLinkScopes {
    private readonly client;
    /**
     * Initialize a new instance of the class PrivateLinkScopes class.
     * @param client Reference to the service client
     */
    constructor(client: MonitorClient);
    /**
     * Gets a list of all Azure Monitor PrivateLinkScopes within a subscription.
     * @param options The options parameters.
     */
    list(options?: PrivateLinkScopesListOptionalParams): PagedAsyncIterableIterator<AzureMonitorPrivateLinkScope>;
    private listPagingPage;
    private listPagingAll;
    /**
     * Gets a list of Azure Monitor PrivateLinkScopes within 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?: PrivateLinkScopesListByResourceGroupOptionalParams): PagedAsyncIterableIterator<AzureMonitorPrivateLinkScope>;
    private listByResourceGroupPagingPage;
    private listByResourceGroupPagingAll;
    /**
     * Gets a list of all Azure Monitor PrivateLinkScopes within a subscription.
     * @param options The options parameters.
     */
    private _list;
    /**
     * Gets a list of Azure Monitor PrivateLinkScopes within a resource group.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param options The options parameters.
     */
    private _listByResourceGroup;
    /**
     * Deletes a Azure Monitor PrivateLinkScope.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param scopeName The name of the Azure Monitor PrivateLinkScope resource.
     * @param options The options parameters.
     */
    beginDelete(resourceGroupName: string, scopeName: string, options?: PrivateLinkScopesDeleteOptionalParams): Promise<PollerLike<PollOperationState<void>, void>>;
    /**
     * Deletes a Azure Monitor PrivateLinkScope.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param scopeName The name of the Azure Monitor PrivateLinkScope resource.
     * @param options The options parameters.
     */
    beginDeleteAndWait(resourceGroupName: string, scopeName: string, options?: PrivateLinkScopesDeleteOptionalParams): Promise<void>;
    /**
     * Returns a Azure Monitor PrivateLinkScope.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param scopeName The name of the Azure Monitor PrivateLinkScope resource.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, scopeName: string, options?: PrivateLinkScopesGetOptionalParams): Promise<PrivateLinkScopesGetResponse>;
    /**
     * Creates (or updates) a Azure Monitor PrivateLinkScope. Note: You cannot specify a different value
     * for InstrumentationKey nor AppId in the Put operation.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param scopeName The name of the Azure Monitor PrivateLinkScope resource.
     * @param azureMonitorPrivateLinkScopePayload Properties that need to be specified to create or update
     *                                            a Azure Monitor PrivateLinkScope.
     * @param options The options parameters.
     */
    createOrUpdate(resourceGroupName: string, scopeName: string, azureMonitorPrivateLinkScopePayload: AzureMonitorPrivateLinkScope, options?: PrivateLinkScopesCreateOrUpdateOptionalParams): Promise<PrivateLinkScopesCreateOrUpdateResponse>;
    /**
     * Updates an existing PrivateLinkScope's tags. To update other fields use the CreateOrUpdate method.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param scopeName The name of the Azure Monitor PrivateLinkScope resource.
     * @param privateLinkScopeTags Updated tag information to set into the PrivateLinkScope instance.
     * @param options The options parameters.
     */
    updateTags(resourceGroupName: string, scopeName: string, privateLinkScopeTags: TagsResource, options?: PrivateLinkScopesUpdateTagsOptionalParams): Promise<PrivateLinkScopesUpdateTagsResponse>;
    /**
     * ListNext
     * @param nextLink The nextLink from the previous successful call to the List method.
     * @param options The options parameters.
     */
    private _listNext;
    /**
     * 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=privateLinkScopes.d.ts.map