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 { SecureEmbedCreateRequest } from "../models/SecureEmbedCreateRequest";
import { SecureEmbedCreateResponse } from "../models/SecureEmbedCreateResponse";
import { SecureEmbedGetResponse } from "../models/SecureEmbedGetResponse";
import { SecureEmbedUpdateRequest } from "../models/SecureEmbedUpdateRequest";
import { SecureEmbedUpdateResponse } from "../models/SecureEmbedUpdateResponse";
export declare class DashboardSecureEmbedApiRequestFactory extends BaseAPIRequestFactory {
    createDashboardSecureEmbed(dashboardId: string, body: SecureEmbedCreateRequest, _options?: Configuration): Promise<RequestContext>;
    deleteDashboardSecureEmbed(dashboardId: string, token: string, _options?: Configuration): Promise<RequestContext>;
    getDashboardSecureEmbed(dashboardId: string, token: string, _options?: Configuration): Promise<RequestContext>;
    updateDashboardSecureEmbed(dashboardId: string, token: string, body: SecureEmbedUpdateRequest, _options?: Configuration): Promise<RequestContext>;
}
export declare class DashboardSecureEmbedApiResponseProcessor {
    /**
     * 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 createDashboardSecureEmbed
     * @throws ApiException if the response code was not in [200, 299]
     */
    createDashboardSecureEmbed(response: ResponseContext): Promise<SecureEmbedCreateResponse>;
    /**
     * 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 deleteDashboardSecureEmbed
     * @throws ApiException if the response code was not in [200, 299]
     */
    deleteDashboardSecureEmbed(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 getDashboardSecureEmbed
     * @throws ApiException if the response code was not in [200, 299]
     */
    getDashboardSecureEmbed(response: ResponseContext): Promise<SecureEmbedGetResponse>;
    /**
     * 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 updateDashboardSecureEmbed
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateDashboardSecureEmbed(response: ResponseContext): Promise<SecureEmbedUpdateResponse>;
}
export interface DashboardSecureEmbedApiCreateDashboardSecureEmbedRequest {
    /**
     * The ID of the dashboard.
     * @type string
     */
    dashboardId: string;
    /**
     * Secure embed creation request body.
     * @type SecureEmbedCreateRequest
     */
    body: SecureEmbedCreateRequest;
}
export interface DashboardSecureEmbedApiDeleteDashboardSecureEmbedRequest {
    /**
     * The ID of the dashboard.
     * @type string
     */
    dashboardId: string;
    /**
     * The share token identifying the secure embed.
     * @type string
     */
    token: string;
}
export interface DashboardSecureEmbedApiGetDashboardSecureEmbedRequest {
    /**
     * The ID of the dashboard.
     * @type string
     */
    dashboardId: string;
    /**
     * The share token identifying the secure embed.
     * @type string
     */
    token: string;
}
export interface DashboardSecureEmbedApiUpdateDashboardSecureEmbedRequest {
    /**
     * The ID of the dashboard.
     * @type string
     */
    dashboardId: string;
    /**
     * The share token identifying the secure embed.
     * @type string
     */
    token: string;
    /**
     * Secure embed update request body.
     * @type SecureEmbedUpdateRequest
     */
    body: SecureEmbedUpdateRequest;
}
export declare class DashboardSecureEmbedApi {
    private requestFactory;
    private responseProcessor;
    private configuration;
    constructor(configuration: Configuration, requestFactory?: DashboardSecureEmbedApiRequestFactory, responseProcessor?: DashboardSecureEmbedApiResponseProcessor);
    /**
     * Create a secure embed share for a dashboard. The response includes a one-time `credential` used for HMAC-SHA256 signing. Store it securely — it cannot be retrieved again.
     * @param param The request object
     */
    createDashboardSecureEmbed(param: DashboardSecureEmbedApiCreateDashboardSecureEmbedRequest, options?: Configuration): Promise<SecureEmbedCreateResponse>;
    /**
     * Delete a secure embed share for a dashboard.
     * @param param The request object
     */
    deleteDashboardSecureEmbed(param: DashboardSecureEmbedApiDeleteDashboardSecureEmbedRequest, options?: Configuration): Promise<void>;
    /**
     * Retrieve an existing secure embed configuration for a dashboard.
     * @param param The request object
     */
    getDashboardSecureEmbed(param: DashboardSecureEmbedApiGetDashboardSecureEmbedRequest, options?: Configuration): Promise<SecureEmbedGetResponse>;
    /**
     * Partially update a secure embed configuration. All fields are optional (PATCH semantics).
     * @param param The request object
     */
    updateDashboardSecureEmbed(param: DashboardSecureEmbedApiUpdateDashboardSecureEmbedRequest, options?: Configuration): Promise<SecureEmbedUpdateResponse>;
}
