import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { AlertRuleResource, AlertRulesListByResourceGroupOptionalParams, AlertRulesListBySubscriptionOptionalParams, AlertRulesCreateOrUpdateOptionalParams, AlertRulesCreateOrUpdateResponse, AlertRulesDeleteOptionalParams, AlertRulesGetOptionalParams, AlertRulesGetResponse, AlertRuleResourcePatch, AlertRulesUpdateOptionalParams, AlertRulesUpdateResponse } from "../models";
/** Interface representing a AlertRules. */
export interface AlertRules {
    /**
     * List the classic metric alert rules 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?: AlertRulesListByResourceGroupOptionalParams): PagedAsyncIterableIterator<AlertRuleResource>;
    /**
     * List the classic metric alert rules within a subscription.
     * @param options The options parameters.
     */
    listBySubscription(options?: AlertRulesListBySubscriptionOptionalParams): PagedAsyncIterableIterator<AlertRuleResource>;
    /**
     * Creates or updates a classic metric alert rule.
     * @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: AlertRuleResource, options?: AlertRulesCreateOrUpdateOptionalParams): Promise<AlertRulesCreateOrUpdateResponse>;
    /**
     * Deletes a classic metric alert rule
     * @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?: AlertRulesDeleteOptionalParams): Promise<void>;
    /**
     * Gets a classic metric alert rule
     * @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?: AlertRulesGetOptionalParams): Promise<AlertRulesGetResponse>;
    /**
     * Updates an existing classic metric AlertRuleResource. To update other fields use the CreateOrUpdate
     * method.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param ruleName The name of the rule.
     * @param alertRulesResource Parameters supplied to the operation.
     * @param options The options parameters.
     */
    update(resourceGroupName: string, ruleName: string, alertRulesResource: AlertRuleResourcePatch, options?: AlertRulesUpdateOptionalParams): Promise<AlertRulesUpdateResponse>;
}
//# sourceMappingURL=alertRules.d.ts.map