import type { PagedAsyncIterableIterator } from "@azure/core-paging";
import type { SimplePollerLike, OperationState } from "@azure/core-lro";
import type { Disk, DisksListOptionalParams, DisksListByResourceGroupOptionalParams, DisksGetOptionalParams, DisksGetResponse, DisksCreateOrUpdateOptionalParams, DisksCreateOrUpdateResponse, DiskUpdate, DisksUpdateOptionalParams, DisksUpdateResponse, DisksDeleteOptionalParams, GrantAccessData, DisksGrantAccessOptionalParams, DisksGrantAccessResponse, DisksRevokeAccessOptionalParams } from "../models/index.js";
/** Interface representing a Disks. */
export interface Disks {
    /**
     * Lists all the disks under a subscription.
     * @param options The options parameters.
     */
    list(options?: DisksListOptionalParams): PagedAsyncIterableIterator<Disk>;
    /**
     * Lists all the disks under 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?: DisksListByResourceGroupOptionalParams): PagedAsyncIterableIterator<Disk>;
    /**
     * Gets information about a disk.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param diskName The name of the managed disk that is being created. The name can't be changed after
     *                 the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name
     *                 length is 80 characters.
     * @param options The options parameters.
     */
    get(resourceGroupName: string, diskName: string, options?: DisksGetOptionalParams): Promise<DisksGetResponse>;
    /**
     * Creates or updates a disk.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param diskName The name of the managed disk that is being created. The name can't be changed after
     *                 the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name
     *                 length is 80 characters.
     * @param disk Disk object supplied in the body of the Put disk operation.
     * @param options The options parameters.
     */
    beginCreateOrUpdate(resourceGroupName: string, diskName: string, disk: Disk, options?: DisksCreateOrUpdateOptionalParams): Promise<SimplePollerLike<OperationState<DisksCreateOrUpdateResponse>, DisksCreateOrUpdateResponse>>;
    /**
     * Creates or updates a disk.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param diskName The name of the managed disk that is being created. The name can't be changed after
     *                 the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name
     *                 length is 80 characters.
     * @param disk Disk object supplied in the body of the Put disk operation.
     * @param options The options parameters.
     */
    beginCreateOrUpdateAndWait(resourceGroupName: string, diskName: string, disk: Disk, options?: DisksCreateOrUpdateOptionalParams): Promise<DisksCreateOrUpdateResponse>;
    /**
     * Updates (patches) a disk.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param diskName The name of the managed disk that is being created. The name can't be changed after
     *                 the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name
     *                 length is 80 characters.
     * @param disk Disk object supplied in the body of the Patch disk operation.
     * @param options The options parameters.
     */
    beginUpdate(resourceGroupName: string, diskName: string, disk: DiskUpdate, options?: DisksUpdateOptionalParams): Promise<SimplePollerLike<OperationState<DisksUpdateResponse>, DisksUpdateResponse>>;
    /**
     * Updates (patches) a disk.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param diskName The name of the managed disk that is being created. The name can't be changed after
     *                 the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name
     *                 length is 80 characters.
     * @param disk Disk object supplied in the body of the Patch disk operation.
     * @param options The options parameters.
     */
    beginUpdateAndWait(resourceGroupName: string, diskName: string, disk: DiskUpdate, options?: DisksUpdateOptionalParams): Promise<DisksUpdateResponse>;
    /**
     * Deletes a disk.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param diskName The name of the managed disk that is being created. The name can't be changed after
     *                 the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name
     *                 length is 80 characters.
     * @param options The options parameters.
     */
    beginDelete(resourceGroupName: string, diskName: string, options?: DisksDeleteOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Deletes a disk.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param diskName The name of the managed disk that is being created. The name can't be changed after
     *                 the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name
     *                 length is 80 characters.
     * @param options The options parameters.
     */
    beginDeleteAndWait(resourceGroupName: string, diskName: string, options?: DisksDeleteOptionalParams): Promise<void>;
    /**
     * Grants access to a disk.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param diskName The name of the managed disk that is being created. The name can't be changed after
     *                 the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name
     *                 length is 80 characters.
     * @param grantAccessData Access data object supplied in the body of the get disk access operation.
     * @param options The options parameters.
     */
    beginGrantAccess(resourceGroupName: string, diskName: string, grantAccessData: GrantAccessData, options?: DisksGrantAccessOptionalParams): Promise<SimplePollerLike<OperationState<DisksGrantAccessResponse>, DisksGrantAccessResponse>>;
    /**
     * Grants access to a disk.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param diskName The name of the managed disk that is being created. The name can't be changed after
     *                 the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name
     *                 length is 80 characters.
     * @param grantAccessData Access data object supplied in the body of the get disk access operation.
     * @param options The options parameters.
     */
    beginGrantAccessAndWait(resourceGroupName: string, diskName: string, grantAccessData: GrantAccessData, options?: DisksGrantAccessOptionalParams): Promise<DisksGrantAccessResponse>;
    /**
     * Revokes access to a disk.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param diskName The name of the managed disk that is being created. The name can't be changed after
     *                 the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name
     *                 length is 80 characters.
     * @param options The options parameters.
     */
    beginRevokeAccess(resourceGroupName: string, diskName: string, options?: DisksRevokeAccessOptionalParams): Promise<SimplePollerLike<OperationState<void>, void>>;
    /**
     * Revokes access to a disk.
     * @param resourceGroupName The name of the resource group. The name is case insensitive.
     * @param diskName The name of the managed disk that is being created. The name can't be changed after
     *                 the disk is created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name
     *                 length is 80 characters.
     * @param options The options parameters.
     */
    beginRevokeAccessAndWait(resourceGroupName: string, diskName: string, options?: DisksRevokeAccessOptionalParams): Promise<void>;
}
//# sourceMappingURL=disks.d.ts.map