import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { PollerLike, PollOperationState } from "@azure/core-lro";
import { Zone, ZonesListByResourceGroupOptionalParams, ZonesListOptionalParams, ZonesCreateOrUpdateOptionalParams, ZonesCreateOrUpdateResponse, ZonesDeleteOptionalParams, ZonesGetOptionalParams, ZonesGetResponse, ZoneUpdate, ZonesUpdateOptionalParams, ZonesUpdateResponse } from "../models";
/** Interface representing a Zones. */
export interface Zones {
    /**
     * Lists the DNS zones within a resource group.
     * @param resourceGroupName The name of the resource group.
     * @param options The options parameters.
     */
    listByResourceGroup(resourceGroupName: string, options?: ZonesListByResourceGroupOptionalParams): PagedAsyncIterableIterator<Zone>;
    /**
     * Lists the DNS zones in all resource groups in a subscription.
     * @param options The options parameters.
     */
    list(options?: ZonesListOptionalParams): PagedAsyncIterableIterator<Zone>;
    /**
     * Creates or updates a DNS zone. Does not modify DNS records within the zone.
     * @param resourceGroupName The name of the resource group.
     * @param zoneName The name of the DNS zone (without a terminating dot).
     * @param parameters Parameters supplied to the CreateOrUpdate operation.
     * @param options The options parameters.
     */
    createOrUpdate(resourceGroupName: string, zoneName: string, parameters: Zone, options?: ZonesCreateOrUpdateOptionalParams): Promise<ZonesCreateOrUpdateResponse>;
    /**
     * Deletes a DNS zone. WARNING: All DNS records in the zone will also be deleted. This operation cannot
     * be undone.
     * @param resourceGroupName The name of the resource group.
     * @param zoneName The name of the DNS zone (without a terminating dot).
     * @param options The options parameters.
     */
    beginDelete(resourceGroupName: string, zoneName: string, options?: ZonesDeleteOptionalParams): Promise<PollerLike<PollOperationState<void>, void>>;
    /**
     * Deletes a DNS zone. WARNING: All DNS records in the zone will also be deleted. This operation cannot
     * be undone.
     * @param resourceGroupName The name of the resource group.
     * @param zoneName The name of the DNS zone (without a terminating dot).
     * @param options The options parameters.
     */
    beginDeleteAndWait(resourceGroupName: string, zoneName: string, options?: ZonesDeleteOptionalParams): Promise<void>;
    /**
     * Gets a DNS zone. Retrieves the zone properties, but not the record sets within the zone.
     * @param resourceGroupName The name of the resource group.
     * @param zoneName The name of the DNS zone (without a terminating dot).
     * @param options The options parameters.
     */
    get(resourceGroupName: string, zoneName: string, options?: ZonesGetOptionalParams): Promise<ZonesGetResponse>;
    /**
     * Updates a DNS zone. Does not modify DNS records within the zone.
     * @param resourceGroupName The name of the resource group.
     * @param zoneName The name of the DNS zone (without a terminating dot).
     * @param parameters Parameters supplied to the Update operation.
     * @param options The options parameters.
     */
    update(resourceGroupName: string, zoneName: string, parameters: ZoneUpdate, options?: ZonesUpdateOptionalParams): Promise<ZonesUpdateResponse>;
}
//# sourceMappingURL=zones.d.ts.map