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 { SalesforceIncidentsOrganizationsResponse } from "../models/SalesforceIncidentsOrganizationsResponse";
import { SalesforceIncidentsTemplateCreateRequest } from "../models/SalesforceIncidentsTemplateCreateRequest";
import { SalesforceIncidentsTemplateResponse } from "../models/SalesforceIncidentsTemplateResponse";
import { SalesforceIncidentsTemplatesResponse } from "../models/SalesforceIncidentsTemplatesResponse";
import { SalesforceIncidentsTemplateUpdateRequest } from "../models/SalesforceIncidentsTemplateUpdateRequest";
export declare class SalesforceIntegrationApiRequestFactory extends BaseAPIRequestFactory {
    createIncidentTemplate(body: SalesforceIncidentsTemplateCreateRequest, _options?: Configuration): Promise<RequestContext>;
    deleteIncidentTemplate(incidentTemplateId: string, _options?: Configuration): Promise<RequestContext>;
    deleteSalesforceOrganization(salesforceOrgId: string, _options?: Configuration): Promise<RequestContext>;
    getIncidentTemplates(_options?: Configuration): Promise<RequestContext>;
    getSalesforceOrganizations(_options?: Configuration): Promise<RequestContext>;
    updateIncidentTemplate(incidentTemplateId: string, body: SalesforceIncidentsTemplateUpdateRequest, _options?: Configuration): Promise<RequestContext>;
}
export declare class SalesforceIntegrationApiResponseProcessor {
    /**
     * 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 createIncidentTemplate
     * @throws ApiException if the response code was not in [200, 299]
     */
    createIncidentTemplate(response: ResponseContext): Promise<SalesforceIncidentsTemplateResponse>;
    /**
     * 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 deleteIncidentTemplate
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteIncidentTemplate(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 deleteSalesforceOrganization
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteSalesforceOrganization(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 getIncidentTemplates
     * @throws ApiException if the response code was not in [200, 299]
     */
    getIncidentTemplates(response: ResponseContext): Promise<SalesforceIncidentsTemplatesResponse>;
    /**
     * 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 getSalesforceOrganizations
     * @throws ApiException if the response code was not in [200, 299]
     */
    getSalesforceOrganizations(response: ResponseContext): Promise<SalesforceIncidentsOrganizationsResponse>;
    /**
     * 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 updateIncidentTemplate
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateIncidentTemplate(response: ResponseContext): Promise<SalesforceIncidentsTemplateResponse>;
}
export interface SalesforceIntegrationApiCreateIncidentTemplateRequest {
    /**
     * Salesforce incident template payload.
     * @type SalesforceIncidentsTemplateCreateRequest
     */
    body: SalesforceIncidentsTemplateCreateRequest;
}
export interface SalesforceIntegrationApiDeleteIncidentTemplateRequest {
    /**
     * The ID of the Salesforce incident template.
     * @type string
     */
    incidentTemplateId: string;
}
export interface SalesforceIntegrationApiDeleteSalesforceOrganizationRequest {
    /**
     * The Datadog-assigned ID of the connected Salesforce organization.
     * @type string
     */
    salesforceOrgId: string;
}
export interface SalesforceIntegrationApiUpdateIncidentTemplateRequest {
    /**
     * The ID of the Salesforce incident template.
     * @type string
     */
    incidentTemplateId: string;
    /**
     * Salesforce incident template payload.
     * @type SalesforceIncidentsTemplateUpdateRequest
     */
    body: SalesforceIncidentsTemplateUpdateRequest;
}
export declare class SalesforceIntegrationApi {
    private requestFactory;
    private responseProcessor;
    private configuration;
    constructor(configuration: Configuration, requestFactory?: SalesforceIntegrationApiRequestFactory, responseProcessor?: SalesforceIntegrationApiResponseProcessor);
    /**
     * Create a new Salesforce incident template for your organization. Template
     * names must be unique within an organization.
     * @param param The request object
     */
    createIncidentTemplate(param: SalesforceIntegrationApiCreateIncidentTemplateRequest, options?: Configuration): Promise<SalesforceIncidentsTemplateResponse>;
    /**
     * Delete a single Salesforce incident template from your organization.
     * @param param The request object
     */
    deleteIncidentTemplate(param: SalesforceIntegrationApiDeleteIncidentTemplateRequest, options?: Configuration): Promise<void>;
    /**
     * Disconnect a Salesforce organization from your Datadog organization.
     * This also deletes any incident templates referencing the organization.
     * @param param The request object
     */
    deleteSalesforceOrganization(param: SalesforceIntegrationApiDeleteSalesforceOrganizationRequest, options?: Configuration): Promise<void>;
    /**
     * Get all Salesforce incident templates configured for your organization.
     * @param param The request object
     */
    getIncidentTemplates(options?: Configuration): Promise<SalesforceIncidentsTemplatesResponse>;
    /**
     * Get all Salesforce organizations connected to your Datadog organization
     * through the Salesforce integration. Salesforce organizations are connected
     * through the OAuth setup flow in the Datadog Salesforce integration page.
     * @param param The request object
     */
    getSalesforceOrganizations(options?: Configuration): Promise<SalesforceIncidentsOrganizationsResponse>;
    /**
     * Update a single Salesforce incident template in your organization.
     * @param param The request object
     */
    updateIncidentTemplate(param: SalesforceIntegrationApiUpdateIncidentTemplateRequest, options?: Configuration): Promise<SalesforceIncidentsTemplateResponse>;
}
