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 { StatuspageAccountCreateRequest } from "../models/StatuspageAccountCreateRequest";
import { StatuspageAccountResponse } from "../models/StatuspageAccountResponse";
import { StatuspageAccountUpdateRequest } from "../models/StatuspageAccountUpdateRequest";
import { StatuspageUrlSettingCreateRequest } from "../models/StatuspageUrlSettingCreateRequest";
import { StatuspageUrlSettingResponse } from "../models/StatuspageUrlSettingResponse";
import { StatuspageUrlSettingsResponse } from "../models/StatuspageUrlSettingsResponse";
import { StatuspageUrlSettingUpdateRequest } from "../models/StatuspageUrlSettingUpdateRequest";
export declare class StatuspageIntegrationApiRequestFactory extends BaseAPIRequestFactory {
    createStatuspageAccount(body: StatuspageAccountCreateRequest, _options?: Configuration): Promise<RequestContext>;
    createStatuspageUrlSetting(body: StatuspageUrlSettingCreateRequest, _options?: Configuration): Promise<RequestContext>;
    deleteStatuspageAccount(_options?: Configuration): Promise<RequestContext>;
    deleteStatuspageUrlSetting(statuspageUrlSettingId: string, _options?: Configuration): Promise<RequestContext>;
    getStatuspageAccount(_options?: Configuration): Promise<RequestContext>;
    listStatuspageUrlSettings(_options?: Configuration): Promise<RequestContext>;
    updateStatuspageAccount(body: StatuspageAccountUpdateRequest, _options?: Configuration): Promise<RequestContext>;
    updateStatuspageUrlSetting(statuspageUrlSettingId: string, body: StatuspageUrlSettingUpdateRequest, _options?: Configuration): Promise<RequestContext>;
}
export declare class StatuspageIntegrationApiResponseProcessor {
    /**
     * 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 createStatuspageAccount
     * @throws ApiException if the response code was not in [200, 299]
     */
    createStatuspageAccount(response: ResponseContext): Promise<StatuspageAccountResponse>;
    /**
     * 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 createStatuspageUrlSetting
     * @throws ApiException if the response code was not in [200, 299]
     */
    createStatuspageUrlSetting(response: ResponseContext): Promise<StatuspageUrlSettingResponse>;
    /**
     * 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 deleteStatuspageAccount
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteStatuspageAccount(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 deleteStatuspageUrlSetting
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteStatuspageUrlSetting(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 getStatuspageAccount
     * @throws ApiException if the response code was not in [200, 299]
     */
    getStatuspageAccount(response: ResponseContext): Promise<StatuspageAccountResponse>;
    /**
     * 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 listStatuspageUrlSettings
     * @throws ApiException if the response code was not in [200, 299]
     */
    listStatuspageUrlSettings(response: ResponseContext): Promise<StatuspageUrlSettingsResponse>;
    /**
     * 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 updateStatuspageAccount
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateStatuspageAccount(response: ResponseContext): Promise<StatuspageAccountResponse>;
    /**
     * 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 updateStatuspageUrlSetting
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateStatuspageUrlSetting(response: ResponseContext): Promise<StatuspageUrlSettingResponse>;
}
export interface StatuspageIntegrationApiCreateStatuspageAccountRequest {
    /**
     * Statuspage account payload.
     * @type StatuspageAccountCreateRequest
     */
    body: StatuspageAccountCreateRequest;
}
export interface StatuspageIntegrationApiCreateStatuspageUrlSettingRequest {
    /**
     * Statuspage URL setting payload.
     * @type StatuspageUrlSettingCreateRequest
     */
    body: StatuspageUrlSettingCreateRequest;
}
export interface StatuspageIntegrationApiDeleteStatuspageUrlSettingRequest {
    /**
     * The UUID of the Statuspage URL setting.
     * @type string
     */
    statuspageUrlSettingId: string;
}
export interface StatuspageIntegrationApiUpdateStatuspageAccountRequest {
    /**
     * Statuspage account payload.
     * @type StatuspageAccountUpdateRequest
     */
    body: StatuspageAccountUpdateRequest;
}
export interface StatuspageIntegrationApiUpdateStatuspageUrlSettingRequest {
    /**
     * The UUID of the Statuspage URL setting.
     * @type string
     */
    statuspageUrlSettingId: string;
    /**
     * Statuspage URL setting payload.
     * @type StatuspageUrlSettingUpdateRequest
     */
    body: StatuspageUrlSettingUpdateRequest;
}
export declare class StatuspageIntegrationApi {
    private requestFactory;
    private responseProcessor;
    private configuration;
    constructor(configuration: Configuration, requestFactory?: StatuspageIntegrationApiRequestFactory, responseProcessor?: StatuspageIntegrationApiResponseProcessor);
    /**
     * Create a Statuspage account for your organization. Only one Statuspage
     * account can be configured per organization.
     * @param param The request object
     */
    createStatuspageAccount(param: StatuspageIntegrationApiCreateStatuspageAccountRequest, options?: Configuration): Promise<StatuspageAccountResponse>;
    /**
     * Create a Statuspage URL setting for your organization.
     * @param param The request object
     */
    createStatuspageUrlSetting(param: StatuspageIntegrationApiCreateStatuspageUrlSettingRequest, options?: Configuration): Promise<StatuspageUrlSettingResponse>;
    /**
     * Delete the Statuspage account configured for your organization.
     * @param param The request object
     */
    deleteStatuspageAccount(options?: Configuration): Promise<void>;
    /**
     * Delete a single Statuspage URL setting from your organization.
     * @param param The request object
     */
    deleteStatuspageUrlSetting(param: StatuspageIntegrationApiDeleteStatuspageUrlSettingRequest, options?: Configuration): Promise<void>;
    /**
     * Get the Statuspage account configured for your organization.
     * @param param The request object
     */
    getStatuspageAccount(options?: Configuration): Promise<StatuspageAccountResponse>;
    /**
     * Get all Statuspage URL settings configured for your organization.
     * @param param The request object
     */
    listStatuspageUrlSettings(options?: Configuration): Promise<StatuspageUrlSettingsResponse>;
    /**
     * Update the Statuspage account configured for your organization.
     * @param param The request object
     */
    updateStatuspageAccount(param: StatuspageIntegrationApiUpdateStatuspageAccountRequest, options?: Configuration): Promise<StatuspageAccountResponse>;
    /**
     * Update a single Statuspage URL setting in your organization.
     * @param param The request object
     */
    updateStatuspageUrlSetting(param: StatuspageIntegrationApiUpdateStatuspageUrlSettingRequest, options?: Configuration): Promise<StatuspageUrlSettingResponse>;
}
