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 { AwsOnDemandCreateRequest } from "../models/AwsOnDemandCreateRequest";
import { AwsOnDemandListResponse } from "../models/AwsOnDemandListResponse";
import { AwsOnDemandResponse } from "../models/AwsOnDemandResponse";
import { AwsScanOptionsCreateRequest } from "../models/AwsScanOptionsCreateRequest";
import { AwsScanOptionsListResponse } from "../models/AwsScanOptionsListResponse";
import { AwsScanOptionsResponse } from "../models/AwsScanOptionsResponse";
import { AwsScanOptionsUpdateRequest } from "../models/AwsScanOptionsUpdateRequest";
export declare class AgentlessScanningApiRequestFactory extends BaseAPIRequestFactory {
    createAwsOnDemandTask(body: AwsOnDemandCreateRequest, _options?: Configuration): Promise<RequestContext>;
    createAwsScanOptions(body: AwsScanOptionsCreateRequest, _options?: Configuration): Promise<RequestContext>;
    deleteAwsScanOptions(accountId: string, _options?: Configuration): Promise<RequestContext>;
    getAwsOnDemandTask(taskId: string, _options?: Configuration): Promise<RequestContext>;
    listAwsOnDemandTasks(_options?: Configuration): Promise<RequestContext>;
    listAwsScanOptions(_options?: Configuration): Promise<RequestContext>;
    updateAwsScanOptions(accountId: string, body: AwsScanOptionsUpdateRequest, _options?: Configuration): Promise<RequestContext>;
}
export declare class AgentlessScanningApiResponseProcessor {
    /**
     * 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 createAwsOnDemandTask
     * @throws ApiException if the response code was not in [200, 299]
     */
    createAwsOnDemandTask(response: ResponseContext): Promise<AwsOnDemandResponse>;
    /**
     * 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 createAwsScanOptions
     * @throws ApiException if the response code was not in [200, 299]
     */
    createAwsScanOptions(response: ResponseContext): Promise<AwsScanOptionsResponse>;
    /**
     * 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 deleteAwsScanOptions
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteAwsScanOptions(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 getAwsOnDemandTask
     * @throws ApiException if the response code was not in [200, 299]
     */
    getAwsOnDemandTask(response: ResponseContext): Promise<AwsOnDemandResponse>;
    /**
     * 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 listAwsOnDemandTasks
     * @throws ApiException if the response code was not in [200, 299]
     */
    listAwsOnDemandTasks(response: ResponseContext): Promise<AwsOnDemandListResponse>;
    /**
     * 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 listAwsScanOptions
     * @throws ApiException if the response code was not in [200, 299]
     */
    listAwsScanOptions(response: ResponseContext): Promise<AwsScanOptionsListResponse>;
    /**
     * 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 updateAwsScanOptions
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateAwsScanOptions(response: ResponseContext): Promise<void>;
}
export interface AgentlessScanningApiCreateAwsOnDemandTaskRequest {
    /**
     * The definition of the on demand task.
     * @type AwsOnDemandCreateRequest
     */
    body: AwsOnDemandCreateRequest;
}
export interface AgentlessScanningApiCreateAwsScanOptionsRequest {
    /**
     * The definition of the new scan options.
     * @type AwsScanOptionsCreateRequest
     */
    body: AwsScanOptionsCreateRequest;
}
export interface AgentlessScanningApiDeleteAwsScanOptionsRequest {
    /**
     * The ID of an AWS account.
     * @type string
     */
    accountId: string;
}
export interface AgentlessScanningApiGetAwsOnDemandTaskRequest {
    /**
     * The UUID of the task.
     * @type string
     */
    taskId: string;
}
export interface AgentlessScanningApiUpdateAwsScanOptionsRequest {
    /**
     * The ID of an AWS account.
     * @type string
     */
    accountId: string;
    /**
     * New definition of the scan options.
     * @type AwsScanOptionsUpdateRequest
     */
    body: AwsScanOptionsUpdateRequest;
}
export declare class AgentlessScanningApi {
    private requestFactory;
    private responseProcessor;
    private configuration;
    constructor(configuration: Configuration, requestFactory?: AgentlessScanningApiRequestFactory, responseProcessor?: AgentlessScanningApiResponseProcessor);
    /**
     * Trigger the scan of an AWS resource with a high priority. Agentless scanning must be activated for the AWS account containing the resource to scan.
     * @param param The request object
     */
    createAwsOnDemandTask(param: AgentlessScanningApiCreateAwsOnDemandTaskRequest, options?: Configuration): Promise<AwsOnDemandResponse>;
    /**
     * Activate Agentless scan options for an AWS account.
     * @param param The request object
     */
    createAwsScanOptions(param: AgentlessScanningApiCreateAwsScanOptionsRequest, options?: Configuration): Promise<AwsScanOptionsResponse>;
    /**
     * Delete Agentless scan options for an AWS account.
     * @param param The request object
     */
    deleteAwsScanOptions(param: AgentlessScanningApiDeleteAwsScanOptionsRequest, options?: Configuration): Promise<void>;
    /**
     * Fetch the data of a specific on demand task.
     * @param param The request object
     */
    getAwsOnDemandTask(param: AgentlessScanningApiGetAwsOnDemandTaskRequest, options?: Configuration): Promise<AwsOnDemandResponse>;
    /**
     * Fetches the most recent 1000 AWS on demand tasks.
     * @param param The request object
     */
    listAwsOnDemandTasks(options?: Configuration): Promise<AwsOnDemandListResponse>;
    /**
     * Fetches the scan options configured for AWS accounts.
     * @param param The request object
     */
    listAwsScanOptions(options?: Configuration): Promise<AwsScanOptionsListResponse>;
    /**
     * Update the Agentless scan options for an activated account.
     * @param param The request object
     */
    updateAwsScanOptions(param: AgentlessScanningApiUpdateAwsScanOptionsRequest, options?: Configuration): Promise<void>;
}
