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 { WebIntegrationAccountCreateRequest } from "../models/WebIntegrationAccountCreateRequest";
import { WebIntegrationAccountResponse } from "../models/WebIntegrationAccountResponse";
import { WebIntegrationAccountsResponse } from "../models/WebIntegrationAccountsResponse";
import { WebIntegrationAccountUpdateRequest } from "../models/WebIntegrationAccountUpdateRequest";
export declare class WebIntegrationsApiRequestFactory extends BaseAPIRequestFactory {
    createWebIntegrationAccount(integrationName: string, body: WebIntegrationAccountCreateRequest, _options?: Configuration): Promise<RequestContext>;
    deleteWebIntegrationAccount(integrationName: string, accountId: string, _options?: Configuration): Promise<RequestContext>;
    getWebIntegrationAccount(integrationName: string, accountId: string, _options?: Configuration): Promise<RequestContext>;
    listWebIntegrationAccounts(integrationName: string, _options?: Configuration): Promise<RequestContext>;
    updateWebIntegrationAccount(integrationName: string, accountId: string, body: WebIntegrationAccountUpdateRequest, _options?: Configuration): Promise<RequestContext>;
}
export declare class WebIntegrationsApiResponseProcessor {
    /**
     * 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 createWebIntegrationAccount
     * @throws ApiException if the response code was not in [200, 299]
     */
    createWebIntegrationAccount(response: ResponseContext): Promise<WebIntegrationAccountResponse>;
    /**
     * 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 deleteWebIntegrationAccount
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteWebIntegrationAccount(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 getWebIntegrationAccount
     * @throws ApiException if the response code was not in [200, 299]
     */
    getWebIntegrationAccount(response: ResponseContext): Promise<WebIntegrationAccountResponse>;
    /**
     * 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 listWebIntegrationAccounts
     * @throws ApiException if the response code was not in [200, 299]
     */
    listWebIntegrationAccounts(response: ResponseContext): Promise<WebIntegrationAccountsResponse>;
    /**
     * 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 updateWebIntegrationAccount
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateWebIntegrationAccount(response: ResponseContext): Promise<WebIntegrationAccountResponse>;
}
export interface WebIntegrationsApiCreateWebIntegrationAccountRequest {
    /**
     * The name of the integration (for example, `databricks`).
     * @type string
     */
    integrationName: string;
    /**
     * @type WebIntegrationAccountCreateRequest
     */
    body: WebIntegrationAccountCreateRequest;
}
export interface WebIntegrationsApiDeleteWebIntegrationAccountRequest {
    /**
     * The name of the integration (for example, `databricks`).
     * @type string
     */
    integrationName: string;
    /**
     * The unique identifier of the web integration account.
     * @type string
     */
    accountId: string;
}
export interface WebIntegrationsApiGetWebIntegrationAccountRequest {
    /**
     * The name of the integration (for example, `databricks`).
     * @type string
     */
    integrationName: string;
    /**
     * The unique identifier of the web integration account.
     * @type string
     */
    accountId: string;
}
export interface WebIntegrationsApiListWebIntegrationAccountsRequest {
    /**
     * The name of the integration (for example, `databricks`).
     * @type string
     */
    integrationName: string;
}
export interface WebIntegrationsApiUpdateWebIntegrationAccountRequest {
    /**
     * The name of the integration (for example, `databricks`).
     * @type string
     */
    integrationName: string;
    /**
     * The unique identifier of the web integration account.
     * @type string
     */
    accountId: string;
    /**
     * @type WebIntegrationAccountUpdateRequest
     */
    body: WebIntegrationAccountUpdateRequest;
}
export declare class WebIntegrationsApi {
    private requestFactory;
    private responseProcessor;
    private configuration;
    constructor(configuration: Configuration, requestFactory?: WebIntegrationsApiRequestFactory, responseProcessor?: WebIntegrationsApiResponseProcessor);
    /**
     * Create a new account for a given web integration.
     * @param param The request object
     */
    createWebIntegrationAccount(param: WebIntegrationsApiCreateWebIntegrationAccountRequest, options?: Configuration): Promise<WebIntegrationAccountResponse>;
    /**
     * Delete an account for a given web integration.
     * @param param The request object
     */
    deleteWebIntegrationAccount(param: WebIntegrationsApiDeleteWebIntegrationAccountRequest, options?: Configuration): Promise<void>;
    /**
     * Get a single account for a given web integration.
     * @param param The request object
     */
    getWebIntegrationAccount(param: WebIntegrationsApiGetWebIntegrationAccountRequest, options?: Configuration): Promise<WebIntegrationAccountResponse>;
    /**
     * List accounts for a given web integration.
     * @param param The request object
     */
    listWebIntegrationAccounts(param: WebIntegrationsApiListWebIntegrationAccountsRequest, options?: Configuration): Promise<WebIntegrationAccountsResponse>;
    /**
     * Update an existing account for a given web integration.
     * @param param The request object
     */
    updateWebIntegrationAccount(param: WebIntegrationsApiUpdateWebIntegrationAccountRequest, options?: Configuration): Promise<WebIntegrationAccountResponse>;
}
