import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { Zones } from "../operationsInterfaces";
import { DnsManagementClient } from "../dnsManagementClient";
import { PollerLike, PollOperationState } from "@azure/core-lro";
import { Zone, ZonesListByResourceGroupOptionalParams, ZonesListOptionalParams, ZonesCreateOrUpdateOptionalParams, ZonesCreateOrUpdateResponse, ZonesDeleteOptionalParams, ZonesGetOptionalParams, ZonesGetResponse, ZoneUpdate, ZonesUpdateOptionalParams, ZonesUpdateResponse } from "../models";
/** Class containing Zones operations. */
export declare class ZonesImpl implements Zones {
    private readonly client;
    /**
     * Initialize a new instance of the class Zones class.
     * @param client Reference to the service client
     */
    constructor(client: DnsManagementClient);
    /**
     * 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>;
    private listByResourceGroupPagingPage;
    private listByResourceGroupPagingAll;
    /**
     * Lists the DNS zones in all resource groups in a subscription.
     * @param options The options parameters.
     */
    list(options?: ZonesListOptionalParams): PagedAsyncIterableIterator<Zone>;
    private listPagingPage;
    private listPagingAll;
    /**
     * 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>;
    /**
     * Lists the DNS zones within a resource group.
     * @param resourceGroupName The name of the resource group.
     * @param options The options parameters.
     */
    private _listByResourceGroup;
    /**
     * Lists the DNS zones in all resource groups in a subscription.
     * @param options The options parameters.
     */
    private _list;
    /**
     * ListByResourceGroupNext
     * @param resourceGroupName The name of the resource group.
     * @param nextLink The nextLink from the previous successful call to the ListByResourceGroup method.
     * @param options The options parameters.
     */
    private _listByResourceGroupNext;
    /**
     * ListNext
     * @param nextLink The nextLink from the previous successful call to the List method.
     * @param options The options parameters.
     */
    private _listNext;
}
//# sourceMappingURL=zones.d.ts.map