import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { AutoscaleSettings } from "../operationsInterfaces";
import { MonitorClient } from "../monitorClient";
import { AutoscaleSettingResource, AutoscaleSettingsListByResourceGroupOptionalParams, AutoscaleSettingsListBySubscriptionOptionalParams, AutoscaleSettingsCreateOrUpdateOptionalParams, AutoscaleSettingsCreateOrUpdateResponse, AutoscaleSettingsDeleteOptionalParams, AutoscaleSettingsGetOptionalParams, AutoscaleSettingsGetResponse, AutoscaleSettingResourcePatch, AutoscaleSettingsUpdateOptionalParams, AutoscaleSettingsUpdateResponse } from "../models";
/** Class containing AutoscaleSettings operations. */
export declare class AutoscaleSettingsImpl implements AutoscaleSettings {
    private readonly client;
    /**
     * Initialize a new instance of the class AutoscaleSettings class.
     * @param client Reference to the service client
     */
    constructor(client: MonitorClient);
    /**
     * Lists the autoscale settings for 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?: AutoscaleSettingsListByResourceGroupOptionalParams): PagedAsyncIterableIterator<AutoscaleSettingResource>;
    private listByResourceGroupPagingPage;
    private listByResourceGroupPagingAll;
    /**
     * Lists the autoscale settings for a subscription
     * @param options The options parameters.
     */
    listBySubscription(options?: AutoscaleSettingsListBySubscriptionOptionalParams): PagedAsyncIterableIterator<AutoscaleSettingResource>;
    private listBySubscriptionPagingPage;
    private listBySubscriptionPagingAll;
    /**
     * Lists the autoscale settings for a resource group
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param options The options parameters.
     */
    private _listByResourceGroup;
    /**
     * Creates or updates an autoscale setting.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param autoscaleSettingName The autoscale setting name.
     * @param parameters Parameters supplied to the operation.
     * @param options The options parameters.
     */
    createOrUpdate(resourceGroupName: string, autoscaleSettingName: string, parameters: AutoscaleSettingResource, options?: AutoscaleSettingsCreateOrUpdateOptionalParams): Promise<AutoscaleSettingsCreateOrUpdateResponse>;
    /**
     * Deletes and autoscale setting
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param autoscaleSettingName The autoscale setting name.
     * @param options The options parameters.
     */
    delete(resourceGroupName: string, autoscaleSettingName: string, options?: AutoscaleSettingsDeleteOptionalParams): Promise<void>;
    /**
     * Gets an autoscale setting
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param autoscaleSettingName The autoscale setting name.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, autoscaleSettingName: string, options?: AutoscaleSettingsGetOptionalParams): Promise<AutoscaleSettingsGetResponse>;
    /**
     * Updates an existing AutoscaleSettingsResource. To update other fields use the CreateOrUpdate method.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param autoscaleSettingName The autoscale setting name.
     * @param autoscaleSettingResource Parameters supplied to the operation.
     * @param options The options parameters.
     */
    update(resourceGroupName: string, autoscaleSettingName: string, autoscaleSettingResource: AutoscaleSettingResourcePatch, options?: AutoscaleSettingsUpdateOptionalParams): Promise<AutoscaleSettingsUpdateResponse>;
    /**
     * Lists the autoscale settings for a subscription
     * @param options The options parameters.
     */
    private _listBySubscription;
    /**
     * 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;
    /**
     * ListBySubscriptionNext
     * @param nextLink The nextLink from the previous successful call to the ListBySubscription method.
     * @param options The options parameters.
     */
    private _listBySubscriptionNext;
}
//# sourceMappingURL=autoscaleSettings.d.ts.map