import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { NetworkVirtualAppliances } from "../operationsInterfaces/index.js";
import { NetworkManagementClient } from "../networkManagementClient.js";
import { SimplePollerLike, OperationState } from "@azure/core-lro";
import { NetworkVirtualAppliance, NetworkVirtualAppliancesListByResourceGroupOptionalParams, NetworkVirtualAppliancesListOptionalParams, NetworkVirtualAppliancesDeleteOptionalParams, NetworkVirtualAppliancesGetOptionalParams, NetworkVirtualAppliancesGetResponse, TagsObject, NetworkVirtualAppliancesUpdateTagsOptionalParams, NetworkVirtualAppliancesUpdateTagsResponse, NetworkVirtualAppliancesCreateOrUpdateOptionalParams, NetworkVirtualAppliancesCreateOrUpdateResponse, NetworkVirtualAppliancesRestartOptionalParams, NetworkVirtualAppliancesRestartResponse, NetworkVirtualAppliancesReimageOptionalParams, NetworkVirtualAppliancesReimageResponse, NetworkVirtualApplianceBootDiagnosticParameters, NetworkVirtualAppliancesGetBootDiagnosticLogsOptionalParams, NetworkVirtualAppliancesGetBootDiagnosticLogsResponse } from "../models/index.js";
/** Class containing NetworkVirtualAppliances operations. */
export declare class NetworkVirtualAppliancesImpl implements NetworkVirtualAppliances {
    private readonly client;
    /**
     * Initialize a new instance of the class NetworkVirtualAppliances class.
     * @param client Reference to the service client
     */
    constructor(client: NetworkManagementClient);
    /**
     * Lists all Network Virtual Appliances in a resource group.
     * @param resourceGroupName The name of the resource group.
     * @param options The options parameters.
     */
    listByResourceGroup(resourceGroupName: string, options?: NetworkVirtualAppliancesListByResourceGroupOptionalParams): PagedAsyncIterableIterator<NetworkVirtualAppliance>;
    private listByResourceGroupPagingPage;
    private listByResourceGroupPagingAll;
    /**
     * Gets all Network Virtual Appliances in a subscription.
     * @param options The options parameters.
     */
    list(options?: NetworkVirtualAppliancesListOptionalParams): PagedAsyncIterableIterator<NetworkVirtualAppliance>;
    private listPagingPage;
    private listPagingAll;
    /**
     * Deletes the specified Network Virtual Appliance.
     * @param resourceGroupName The name of the resource group.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance.
     * @param options The options parameters.
     */
    beginDelete(resourceGroupName: string, networkVirtualApplianceName: string, options?: NetworkVirtualAppliancesDeleteOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Deletes the specified Network Virtual Appliance.
     * @param resourceGroupName The name of the resource group.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance.
     * @param options The options parameters.
     */
    beginDeleteAndWait(resourceGroupName: string, networkVirtualApplianceName: string, options?: NetworkVirtualAppliancesDeleteOptionalParams): Promise<void>;
    /**
     * Gets the specified Network Virtual Appliance.
     * @param resourceGroupName The name of the resource group.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, networkVirtualApplianceName: string, options?: NetworkVirtualAppliancesGetOptionalParams): Promise<NetworkVirtualAppliancesGetResponse>;
    /**
     * Updates a Network Virtual Appliance.
     * @param resourceGroupName The resource group name of Network Virtual Appliance.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance being updated.
     * @param parameters Parameters supplied to Update Network Virtual Appliance Tags.
     * @param options The options parameters.
     */
    updateTags(resourceGroupName: string, networkVirtualApplianceName: string, parameters: TagsObject, options?: NetworkVirtualAppliancesUpdateTagsOptionalParams): Promise<NetworkVirtualAppliancesUpdateTagsResponse>;
    /**
     * Creates or updates the specified Network Virtual Appliance.
     * @param resourceGroupName The name of the resource group.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance.
     * @param parameters Parameters supplied to the create or update Network Virtual Appliance.
     * @param options The options parameters.
     */
    beginCreateOrUpdate(resourceGroupName: string, networkVirtualApplianceName: string, parameters: NetworkVirtualAppliance, options?: NetworkVirtualAppliancesCreateOrUpdateOptionalParams): Promise<SimplePollerLike<OperationState<NetworkVirtualAppliancesCreateOrUpdateResponse>, NetworkVirtualAppliancesCreateOrUpdateResponse>>;
    /**
     * Creates or updates the specified Network Virtual Appliance.
     * @param resourceGroupName The name of the resource group.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance.
     * @param parameters Parameters supplied to the create or update Network Virtual Appliance.
     * @param options The options parameters.
     */
    beginCreateOrUpdateAndWait(resourceGroupName: string, networkVirtualApplianceName: string, parameters: NetworkVirtualAppliance, options?: NetworkVirtualAppliancesCreateOrUpdateOptionalParams): Promise<NetworkVirtualAppliancesCreateOrUpdateResponse>;
    /**
     * Restarts one or more VMs belonging to the specified Network Virtual Appliance.
     * @param resourceGroupName The name of the resource group.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance.
     * @param options The options parameters.
     */
    beginRestart(resourceGroupName: string, networkVirtualApplianceName: string, options?: NetworkVirtualAppliancesRestartOptionalParams): Promise<SimplePollerLike<OperationState<NetworkVirtualAppliancesRestartResponse>, NetworkVirtualAppliancesRestartResponse>>;
    /**
     * Restarts one or more VMs belonging to the specified Network Virtual Appliance.
     * @param resourceGroupName The name of the resource group.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance.
     * @param options The options parameters.
     */
    beginRestartAndWait(resourceGroupName: string, networkVirtualApplianceName: string, options?: NetworkVirtualAppliancesRestartOptionalParams): Promise<NetworkVirtualAppliancesRestartResponse>;
    /**
     * Reimages one VM belonging to the specified Network Virtual Appliance.
     * @param resourceGroupName The name of the resource group.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance.
     * @param options The options parameters.
     */
    beginReimage(resourceGroupName: string, networkVirtualApplianceName: string, options?: NetworkVirtualAppliancesReimageOptionalParams): Promise<SimplePollerLike<OperationState<NetworkVirtualAppliancesReimageResponse>, NetworkVirtualAppliancesReimageResponse>>;
    /**
     * Reimages one VM belonging to the specified Network Virtual Appliance.
     * @param resourceGroupName The name of the resource group.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance.
     * @param options The options parameters.
     */
    beginReimageAndWait(resourceGroupName: string, networkVirtualApplianceName: string, options?: NetworkVirtualAppliancesReimageOptionalParams): Promise<NetworkVirtualAppliancesReimageResponse>;
    /**
     * Retrieves the boot diagnostic logs for a VM instance belonging to the specified Network Virtual
     * Appliance.
     * @param resourceGroupName The name of the resource group.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance.
     * @param request Parameters supplied to retrieve boot diagnostic logs for a NVA VM instance
     * @param options The options parameters.
     */
    beginGetBootDiagnosticLogs(resourceGroupName: string, networkVirtualApplianceName: string, request: NetworkVirtualApplianceBootDiagnosticParameters, options?: NetworkVirtualAppliancesGetBootDiagnosticLogsOptionalParams): Promise<SimplePollerLike<OperationState<NetworkVirtualAppliancesGetBootDiagnosticLogsResponse>, NetworkVirtualAppliancesGetBootDiagnosticLogsResponse>>;
    /**
     * Retrieves the boot diagnostic logs for a VM instance belonging to the specified Network Virtual
     * Appliance.
     * @param resourceGroupName The name of the resource group.
     * @param networkVirtualApplianceName The name of Network Virtual Appliance.
     * @param request Parameters supplied to retrieve boot diagnostic logs for a NVA VM instance
     * @param options The options parameters.
     */
    beginGetBootDiagnosticLogsAndWait(resourceGroupName: string, networkVirtualApplianceName: string, request: NetworkVirtualApplianceBootDiagnosticParameters, options?: NetworkVirtualAppliancesGetBootDiagnosticLogsOptionalParams): Promise<NetworkVirtualAppliancesGetBootDiagnosticLogsResponse>;
    /**
     * Lists all Network Virtual Appliances in a resource group.
     * @param resourceGroupName The name of the resource group.
     * @param options The options parameters.
     */
    private _listByResourceGroup;
    /**
     * Gets all Network Virtual Appliances 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=networkVirtualAppliances.d.ts.map