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 { CsmAgentlessHostFacetsResponse } from "../models/CsmAgentlessHostFacetsResponse";
import { CsmAgentlessHostsResponse } from "../models/CsmAgentlessHostsResponse";
import { CsmHostFacetInfoResponse } from "../models/CsmHostFacetInfoResponse";
import { CsmUnifiedHostFacetsResponse } from "../models/CsmUnifiedHostFacetsResponse";
import { CsmUnifiedHostsResponse } from "../models/CsmUnifiedHostsResponse";
export declare class CSMSettingsApiRequestFactory extends BaseAPIRequestFactory {
    getCSMAgentlessHostFacetInfo(facet: string, search?: string, query?: string, _options?: Configuration): Promise<RequestContext>;
    getCSMUnifiedHostFacetInfo(facet: string, search?: string, query?: string, _options?: Configuration): Promise<RequestContext>;
    listCSMAgentlessHostFacets(_options?: Configuration): Promise<RequestContext>;
    listCSMAgentlessHosts(page?: number, size?: number, query?: string, _options?: Configuration): Promise<RequestContext>;
    listCSMUnifiedHostFacets(_options?: Configuration): Promise<RequestContext>;
    listCSMUnifiedHosts(page?: number, size?: number, query?: string, _options?: Configuration): Promise<RequestContext>;
}
export declare class CSMSettingsApiResponseProcessor {
    /**
     * 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 getCSMAgentlessHostFacetInfo
     * @throws ApiException if the response code was not in [200, 299]
     */
    getCSMAgentlessHostFacetInfo(response: ResponseContext): Promise<CsmHostFacetInfoResponse>;
    /**
     * 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 getCSMUnifiedHostFacetInfo
     * @throws ApiException if the response code was not in [200, 299]
     */
    getCSMUnifiedHostFacetInfo(response: ResponseContext): Promise<CsmHostFacetInfoResponse>;
    /**
     * 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 listCSMAgentlessHostFacets
     * @throws ApiException if the response code was not in [200, 299]
     */
    listCSMAgentlessHostFacets(response: ResponseContext): Promise<CsmAgentlessHostFacetsResponse>;
    /**
     * 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 listCSMAgentlessHosts
     * @throws ApiException if the response code was not in [200, 299]
     */
    listCSMAgentlessHosts(response: ResponseContext): Promise<CsmAgentlessHostsResponse>;
    /**
     * 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 listCSMUnifiedHostFacets
     * @throws ApiException if the response code was not in [200, 299]
     */
    listCSMUnifiedHostFacets(response: ResponseContext): Promise<CsmUnifiedHostFacetsResponse>;
    /**
     * 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 listCSMUnifiedHosts
     * @throws ApiException if the response code was not in [200, 299]
     */
    listCSMUnifiedHosts(response: ResponseContext): Promise<CsmUnifiedHostsResponse>;
}
export interface CSMSettingsApiGetCSMAgentlessHostFacetInfoRequest {
    /**
     * The facet identifier to retrieve value distribution for. Valid values are `resource_name`, `account_id`, `resource_type`, `cloud_provider`, `has_vulnerability_scanning`, and `has_posture_management`.
     * @type string
     */
    facet: string;
    /**
     * A search string to filter the facet values.
     * @type string
     */
    search?: string;
    /**
     * A filter query to scope the facet value counts.
     * @type string
     */
    query?: string;
}
export interface CSMSettingsApiGetCSMUnifiedHostFacetInfoRequest {
    /**
     * The facet identifier to retrieve value distribution for. Valid values include `resource_name`, `account_id`, `resource_type`, `cloud_provider`, `agentless_vulnerability_scanning`, `agentless_posture_management`, `hostname`, `agent_version`, `os`, `cluster_name`, `agent_posture_management`, `agent_cws_enabled`, `agent_csm_vm_hosts_enabled`, and `agent_csm_vm_containers_enabled`.
     * @type string
     */
    facet: string;
    /**
     * A search string to filter the facet values.
     * @type string
     */
    search?: string;
    /**
     * A filter query to scope the facet value counts.
     * @type string
     */
    query?: string;
}
export interface CSMSettingsApiListCSMAgentlessHostsRequest {
    /**
     * The page index for pagination (zero-based).
     * @type number
     */
    page?: number;
    /**
     * The number of agentless hosts to return per page.
     * @type number
     */
    size?: number;
    /**
     * A search query string to filter agentless hosts.
     * @type string
     */
    query?: string;
}
export interface CSMSettingsApiListCSMUnifiedHostsRequest {
    /**
     * The page index for pagination (zero-based).
     * @type number
     */
    page?: number;
    /**
     * The number of hosts to return per page.
     * @type number
     */
    size?: number;
    /**
     * A search query string to filter unified hosts.
     * @type string
     */
    query?: string;
}
export declare class CSMSettingsApi {
    private requestFactory;
    private responseProcessor;
    private configuration;
    constructor(configuration: Configuration, requestFactory?: CSMSettingsApiRequestFactory, responseProcessor?: CSMSettingsApiResponseProcessor);
    /**
     * Get the value distribution for a specific agentless host facet, with optional search and filtering.
     * @param param The request object
     */
    getCSMAgentlessHostFacetInfo(param: CSMSettingsApiGetCSMAgentlessHostFacetInfoRequest, options?: Configuration): Promise<CsmHostFacetInfoResponse>;
    /**
     * Get the value distribution for a specific unified host facet, with optional search and filtering.
     * @param param The request object
     */
    getCSMUnifiedHostFacetInfo(param: CSMSettingsApiGetCSMUnifiedHostFacetInfoRequest, options?: Configuration): Promise<CsmHostFacetInfoResponse>;
    /**
     * Get the list of available facets for filtering agentless hosts.
     * @param param The request object
     */
    listCSMAgentlessHostFacets(options?: Configuration): Promise<CsmAgentlessHostFacetsResponse>;
    /**
     * Get the list of agentless hosts for CSM, with optional pagination and filtering.
     * @param param The request object
     */
    listCSMAgentlessHosts(param?: CSMSettingsApiListCSMAgentlessHostsRequest, options?: Configuration): Promise<CsmAgentlessHostsResponse>;
    /**
     * Get the list of available facets for filtering unified hosts.
     * @param param The request object
     */
    listCSMUnifiedHostFacets(options?: Configuration): Promise<CsmUnifiedHostFacetsResponse>;
    /**
     * Get the list of unified hosts for CSM, combining agent and agentless host data, with optional pagination and filtering.
     * @param param The request object
     */
    listCSMUnifiedHosts(param?: CSMSettingsApiListCSMUnifiedHostsRequest, options?: Configuration): Promise<CsmUnifiedHostsResponse>;
}
