import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { SimplePollerLike, OperationState } from "@azure/core-lro";
import { NetworkSecurityPerimeter, NetworkSecurityPerimetersListBySubscriptionOptionalParams, NetworkSecurityPerimetersListOptionalParams, NetworkSecurityPerimetersGetOptionalParams, NetworkSecurityPerimetersGetResponse, NetworkSecurityPerimetersCreateOrUpdateOptionalParams, NetworkSecurityPerimetersCreateOrUpdateResponse, NetworkSecurityPerimetersDeleteOptionalParams, UpdateTagsRequest, NetworkSecurityPerimetersPatchOptionalParams, NetworkSecurityPerimetersPatchResponse } from "../models/index.js";
/** Interface representing a NetworkSecurityPerimeters. */
export interface NetworkSecurityPerimeters {
    /**
     * List all network security perimeters in a subscription.
     * @param options The options parameters.
     */
    listBySubscription(options?: NetworkSecurityPerimetersListBySubscriptionOptionalParams): PagedAsyncIterableIterator<NetworkSecurityPerimeter>;
    /**
     * List network security perimeters in a resource group.
     * @param resourceGroupName The name of the resource group.
     * @param options The options parameters.
     */
    list(resourceGroupName: string, options?: NetworkSecurityPerimetersListOptionalParams): PagedAsyncIterableIterator<NetworkSecurityPerimeter>;
    /**
     * Gets the specified network security perimeter by the name.
     * @param resourceGroupName The name of the resource group.
     * @param networkSecurityPerimeterName The name of the network security perimeter.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, networkSecurityPerimeterName: string, options?: NetworkSecurityPerimetersGetOptionalParams): Promise<NetworkSecurityPerimetersGetResponse>;
    /**
     * Creates or updates a Network Security Perimeter.
     * @param resourceGroupName The name of the resource group.
     * @param networkSecurityPerimeterName The name of the network security perimeter.
     * @param parameters Parameter supplied to create or update the network security perimeter.
     * @param options The options parameters.
     */
    createOrUpdate(resourceGroupName: string, networkSecurityPerimeterName: string, parameters: NetworkSecurityPerimeter, options?: NetworkSecurityPerimetersCreateOrUpdateOptionalParams): Promise<NetworkSecurityPerimetersCreateOrUpdateResponse>;
    /**
     * Deletes a network security perimeter.
     * @param resourceGroupName The name of the resource group.
     * @param networkSecurityPerimeterName The name of the network security perimeter.
     * @param options The options parameters.
     */
    beginDelete(resourceGroupName: string, networkSecurityPerimeterName: string, options?: NetworkSecurityPerimetersDeleteOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Deletes a network security perimeter.
     * @param resourceGroupName The name of the resource group.
     * @param networkSecurityPerimeterName The name of the network security perimeter.
     * @param options The options parameters.
     */
    beginDeleteAndWait(resourceGroupName: string, networkSecurityPerimeterName: string, options?: NetworkSecurityPerimetersDeleteOptionalParams): Promise<void>;
    /**
     * Patch Tags for a Network Security Perimeter.
     * @param resourceGroupName The name of the resource group.
     * @param networkSecurityPerimeterName The name of the network security perimeter.
     * @param parameters Parameter supplied to the network security perimeter.
     * @param options The options parameters.
     */
    patch(resourceGroupName: string, networkSecurityPerimeterName: string, parameters: UpdateTagsRequest, options?: NetworkSecurityPerimetersPatchOptionalParams): Promise<NetworkSecurityPerimetersPatchResponse>;
}
//# sourceMappingURL=networkSecurityPerimeters.d.ts.map