import { BaseAPIRequestFactory } from "../../datadog-api-client-common/baseapi";
import { Configuration } from "../../datadog-api-client-common/configuration";
import { RequestContext, ResponseContext } from "../../datadog-api-client-common/http/http";
import { CloudInventorySyncConfigResponse } from "../models/CloudInventorySyncConfigResponse";
import { UpsertCloudInventorySyncConfigRequest } from "../models/UpsertCloudInventorySyncConfigRequest";
export declare class StorageManagementApiRequestFactory extends BaseAPIRequestFactory {
    deleteSyncConfig(id: string, _options?: Configuration): Promise<RequestContext>;
    upsertSyncConfig(body: UpsertCloudInventorySyncConfigRequest, _options?: Configuration): Promise<RequestContext>;
}
export declare class StorageManagementApiResponseProcessor {
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to deleteSyncConfig
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteSyncConfig(response: ResponseContext): Promise<void>;
    /**
     * Unwraps the actual response sent by the server from the response context and deserializes the response content
     * to the expected objects
     *
     * @params response Response returned by the server for a request to upsertSyncConfig
     * @throws ApiException if the response code was not in [200, 299]
     */
    upsertSyncConfig(response: ResponseContext): Promise<CloudInventorySyncConfigResponse>;
}
export interface StorageManagementApiDeleteSyncConfigRequest {
    /**
     * Unique identifier of the Storage Management configuration.
     * @type string
     */
    id: string;
}
export interface StorageManagementApiUpsertSyncConfigRequest {
    /**
     * @type UpsertCloudInventorySyncConfigRequest
     */
    body: UpsertCloudInventorySyncConfigRequest;
}
export declare class StorageManagementApi {
    private requestFactory;
    private responseProcessor;
    private configuration;
    constructor(configuration: Configuration, requestFactory?: StorageManagementApiRequestFactory, responseProcessor?: StorageManagementApiResponseProcessor);
    /**
     * Delete a Storage Management configuration by its unique identifier. Deleting a configuration stops inventory file synchronization for the associated cloud account.
     * @param param The request object
     */
    deleteSyncConfig(param: StorageManagementApiDeleteSyncConfigRequest, options?: Configuration): Promise<void>;
    /**
     * Enable Storage Management for an S3 bucket, GCS bucket, or Azure container by registering the destination that holds its inventory reports. Set `data.id` to the cloud provider (`aws`, `gcp`, or `azure`) and provide the matching settings under data.attributes. Calling this endpoint with the same provider replaces the existing configuration.
     * @param param The request object
     */
    upsertSyncConfig(param: StorageManagementApiUpsertSyncConfigRequest, options?: Configuration): Promise<CloudInventorySyncConfigResponse>;
}
