import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { MetricAlerts } from "../operationsInterfaces";
import { MonitorClient } from "../monitorClient";
import { MetricAlertResource, MetricAlertsListBySubscriptionOptionalParams, MetricAlertsListByResourceGroupOptionalParams, MetricAlertsGetOptionalParams, MetricAlertsGetResponse, MetricAlertsCreateOrUpdateOptionalParams, MetricAlertsCreateOrUpdateResponse, MetricAlertResourcePatch, MetricAlertsUpdateOptionalParams, MetricAlertsUpdateResponse, MetricAlertsDeleteOptionalParams } from "../models";
/** Class containing MetricAlerts operations. */
export declare class MetricAlertsImpl implements MetricAlerts {
    private readonly client;
    /**
     * Initialize a new instance of the class MetricAlerts class.
     * @param client Reference to the service client
     */
    constructor(client: MonitorClient);
    /**
     * Retrieve alert rule definitions in a subscription.
     * @param options The options parameters.
     */
    listBySubscription(options?: MetricAlertsListBySubscriptionOptionalParams): PagedAsyncIterableIterator<MetricAlertResource>;
    private listBySubscriptionPagingPage;
    private listBySubscriptionPagingAll;
    /**
     * Retrieve alert rule definitions 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?: MetricAlertsListByResourceGroupOptionalParams): PagedAsyncIterableIterator<MetricAlertResource>;
    private listByResourceGroupPagingPage;
    private listByResourceGroupPagingAll;
    /**
     * Retrieve alert rule definitions in a subscription.
     * @param options The options parameters.
     */
    private _listBySubscription;
    /**
     * Retrieve alert rule definitions in a resource group.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param options The options parameters.
     */
    private _listByResourceGroup;
    /**
     * Retrieve an alert rule definition.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param ruleName The name of the rule.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, ruleName: string, options?: MetricAlertsGetOptionalParams): Promise<MetricAlertsGetResponse>;
    /**
     * Create or update an metric alert definition.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param ruleName The name of the rule.
     * @param parameters The parameters of the rule to create or update.
     * @param options The options parameters.
     */
    createOrUpdate(resourceGroupName: string, ruleName: string, parameters: MetricAlertResource, options?: MetricAlertsCreateOrUpdateOptionalParams): Promise<MetricAlertsCreateOrUpdateResponse>;
    /**
     * Update an metric alert definition.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param ruleName The name of the rule.
     * @param parameters The parameters of the rule to update.
     * @param options The options parameters.
     */
    update(resourceGroupName: string, ruleName: string, parameters: MetricAlertResourcePatch, options?: MetricAlertsUpdateOptionalParams): Promise<MetricAlertsUpdateResponse>;
    /**
     * Delete an alert rule definition.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param ruleName The name of the rule.
     * @param options The options parameters.
     */
    delete(resourceGroupName: string, ruleName: string, options?: MetricAlertsDeleteOptionalParams): Promise<void>;
}
//# sourceMappingURL=metricAlerts.d.ts.map