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 { DORADeploymentFetchResponse } from "../models/DORADeploymentFetchResponse";
import { DORADeploymentPatchRequest } from "../models/DORADeploymentPatchRequest";
import { DORADeploymentRequest } from "../models/DORADeploymentRequest";
import { DORADeploymentResponse } from "../models/DORADeploymentResponse";
import { DORADeploymentsListResponse } from "../models/DORADeploymentsListResponse";
import { DORAFailureFetchResponse } from "../models/DORAFailureFetchResponse";
import { DORAFailureRequest } from "../models/DORAFailureRequest";
import { DORAFailureResponse } from "../models/DORAFailureResponse";
import { DORAFailuresListResponse } from "../models/DORAFailuresListResponse";
import { DORAListDeploymentsRequest } from "../models/DORAListDeploymentsRequest";
import { DORAListFailuresRequest } from "../models/DORAListFailuresRequest";
export declare class DORAMetricsApiRequestFactory extends BaseAPIRequestFactory {
    createDORADeployment(body: DORADeploymentRequest, _options?: Configuration): Promise<RequestContext>;
    createDORAFailure(body: DORAFailureRequest, _options?: Configuration): Promise<RequestContext>;
    createDORAIncident(body: DORAFailureRequest, _options?: Configuration): Promise<RequestContext>;
    deleteDORADeployment(deploymentId: string, _options?: Configuration): Promise<RequestContext>;
    deleteDORAFailure(failureId: string, _options?: Configuration): Promise<RequestContext>;
    getDORADeployment(deploymentId: string, _options?: Configuration): Promise<RequestContext>;
    getDORAFailure(failureId: string, _options?: Configuration): Promise<RequestContext>;
    listDORADeployments(body: DORAListDeploymentsRequest, _options?: Configuration): Promise<RequestContext>;
    listDORAFailures(body: DORAListFailuresRequest, _options?: Configuration): Promise<RequestContext>;
    patchDORADeployment(deploymentId: string, body: DORADeploymentPatchRequest, _options?: Configuration): Promise<RequestContext>;
}
export declare class DORAMetricsApiResponseProcessor {
    /**
     * 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 createDORADeployment
     * @throws ApiException if the response code was not in [200, 299]
     */
    createDORADeployment(response: ResponseContext): Promise<DORADeploymentResponse>;
    /**
     * 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 createDORAFailure
     * @throws ApiException if the response code was not in [200, 299]
     */
    createDORAFailure(response: ResponseContext): Promise<DORAFailureResponse>;
    /**
     * 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 createDORAIncident
     * @throws ApiException if the response code was not in [200, 299]
     */
    createDORAIncident(response: ResponseContext): Promise<DORAFailureResponse>;
    /**
     * 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 deleteDORADeployment
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteDORADeployment(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 deleteDORAFailure
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteDORAFailure(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 getDORADeployment
     * @throws ApiException if the response code was not in [200, 299]
     */
    getDORADeployment(response: ResponseContext): Promise<DORADeploymentFetchResponse>;
    /**
     * 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 getDORAFailure
     * @throws ApiException if the response code was not in [200, 299]
     */
    getDORAFailure(response: ResponseContext): Promise<DORAFailureFetchResponse>;
    /**
     * 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 listDORADeployments
     * @throws ApiException if the response code was not in [200, 299]
     */
    listDORADeployments(response: ResponseContext): Promise<DORADeploymentsListResponse>;
    /**
     * 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 listDORAFailures
     * @throws ApiException if the response code was not in [200, 299]
     */
    listDORAFailures(response: ResponseContext): Promise<DORAFailuresListResponse>;
    /**
     * 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 patchDORADeployment
     * @throws ApiException if the response code was not in [200, 299]
     */
    patchDORADeployment(response: ResponseContext): Promise<void>;
}
export interface DORAMetricsApiCreateDORADeploymentRequest {
    /**
     * @type DORADeploymentRequest
     */
    body: DORADeploymentRequest;
}
export interface DORAMetricsApiCreateDORAFailureRequest {
    /**
     * @type DORAFailureRequest
     */
    body: DORAFailureRequest;
}
export interface DORAMetricsApiCreateDORAIncidentRequest {
    /**
     * @type DORAFailureRequest
     */
    body: DORAFailureRequest;
}
export interface DORAMetricsApiDeleteDORADeploymentRequest {
    /**
     * The ID of the deployment event to delete.
     * @type string
     */
    deploymentId: string;
}
export interface DORAMetricsApiDeleteDORAFailureRequest {
    /**
     * The ID of the incident event to delete.
     * @type string
     */
    failureId: string;
}
export interface DORAMetricsApiGetDORADeploymentRequest {
    /**
     * The ID of the deployment event.
     * @type string
     */
    deploymentId: string;
}
export interface DORAMetricsApiGetDORAFailureRequest {
    /**
     * The ID of the incident event.
     * @type string
     */
    failureId: string;
}
export interface DORAMetricsApiListDORADeploymentsRequest {
    /**
     * @type DORAListDeploymentsRequest
     */
    body: DORAListDeploymentsRequest;
}
export interface DORAMetricsApiListDORAFailuresRequest {
    /**
     * @type DORAListFailuresRequest
     */
    body: DORAListFailuresRequest;
}
export interface DORAMetricsApiPatchDORADeploymentRequest {
    /**
     * The ID of the deployment event.
     * @type string
     */
    deploymentId: string;
    /**
     * @type DORADeploymentPatchRequest
     */
    body: DORADeploymentPatchRequest;
}
export declare class DORAMetricsApi {
    private requestFactory;
    private responseProcessor;
    private configuration;
    constructor(configuration: Configuration, requestFactory?: DORAMetricsApiRequestFactory, responseProcessor?: DORAMetricsApiResponseProcessor);
    /**
     * Use this API endpoint to provide deployment data.
     *
     * This is necessary for:
     * - Deployment Frequency
     * - Change Lead Time
     * - Change Failure Rate
     * - Failed Deployment Recovery Time
     * @param param The request object
     */
    createDORADeployment(param: DORAMetricsApiCreateDORADeploymentRequest, options?: Configuration): Promise<DORADeploymentResponse>;
    /**
     * Use this API endpoint to provide incident data for DORA Metrics.
     * Note that change failure rate and failed deployment recovery time are computed from change failures detected on deployments, not from incident events sent through this endpoint.
     * Tracking incidents gives a side-by-side view of how failed deployments translate into real-world incidents, including their severity and frequency.
     * @param param The request object
     */
    createDORAFailure(param: DORAMetricsApiCreateDORAFailureRequest, options?: Configuration): Promise<DORAFailureResponse>;
    /**
     * **Note**: This endpoint is deprecated. Please use `/api/v2/dora/failure` instead.
     *
     * Use this API endpoint to provide incident data.
     * Tracking incidents gives a side-by-side view of how failed deployments translate into real-world incidents.
     * @param param The request object
     */
    createDORAIncident(param: DORAMetricsApiCreateDORAIncidentRequest, options?: Configuration): Promise<DORAFailureResponse>;
    /**
     * Use this API endpoint to delete a deployment event.
     * @param param The request object
     */
    deleteDORADeployment(param: DORAMetricsApiDeleteDORADeploymentRequest, options?: Configuration): Promise<void>;
    /**
     * Use this API endpoint to delete an incident event.
     * @param param The request object
     */
    deleteDORAFailure(param: DORAMetricsApiDeleteDORAFailureRequest, options?: Configuration): Promise<void>;
    /**
     * Use this API endpoint to get a deployment event.
     * @param param The request object
     */
    getDORADeployment(param: DORAMetricsApiGetDORADeploymentRequest, options?: Configuration): Promise<DORADeploymentFetchResponse>;
    /**
     * Use this API endpoint to get an incident event.
     * @param param The request object
     */
    getDORAFailure(param: DORAMetricsApiGetDORAFailureRequest, options?: Configuration): Promise<DORAFailureFetchResponse>;
    /**
     * Use this API endpoint to get a list of deployment events.
     * @param param The request object
     */
    listDORADeployments(param: DORAMetricsApiListDORADeploymentsRequest, options?: Configuration): Promise<DORADeploymentsListResponse>;
    /**
     * Use this API endpoint to get a list of incident events.
     * @param param The request object
     */
    listDORAFailures(param: DORAMetricsApiListDORAFailuresRequest, options?: Configuration): Promise<DORAFailuresListResponse>;
    /**
     * Update a deployment's change failure status. Use this to mark a deployment as a change failure or back to stable. You can optionally include remediation details to enable failed deployment recovery time calculation.
     * @param param The request object
     */
    patchDORADeployment(param: DORAMetricsApiPatchDORADeploymentRequest, options?: Configuration): Promise<void>;
}
