import { BaseAPIRequestFactory } from "../../datadog-api-client-common/baseapi";
import { Configuration } from "../../datadog-api-client-common/configuration";
import { RequestContext, ResponseContext, HttpFile } from "../../datadog-api-client-common/http/http";
import { GlobalOrgData } from "../models/GlobalOrgData";
import { GlobalOrgsResponse } from "../models/GlobalOrgsResponse";
import { ManagedOrgsResponse } from "../models/ManagedOrgsResponse";
import { MaxSessionDurationUpdateRequest } from "../models/MaxSessionDurationUpdateRequest";
import { OrgConfigGetResponse } from "../models/OrgConfigGetResponse";
import { OrgConfigListResponse } from "../models/OrgConfigListResponse";
import { OrgConfigWriteRequest } from "../models/OrgConfigWriteRequest";
import { OrgSAMLPreferencesUpdateRequest } from "../models/OrgSAMLPreferencesUpdateRequest";
import { SAMLConfigurationResponse } from "../models/SAMLConfigurationResponse";
import { SAMLConfigurationsResponse } from "../models/SAMLConfigurationsResponse";
import { SAMLConfigurationUpdateRequest } from "../models/SAMLConfigurationUpdateRequest";
export declare class OrganizationsApiRequestFactory extends BaseAPIRequestFactory {
    getOrgConfig(orgConfigName: string, _options?: Configuration): Promise<RequestContext>;
    getSAMLConfiguration(samlConfigUuid: string, _options?: Configuration): Promise<RequestContext>;
    listGlobalOrgs(userHandle: string, pageLimit?: number, pageCursor?: string, _options?: Configuration): Promise<RequestContext>;
    listOrgConfigs(_options?: Configuration): Promise<RequestContext>;
    listOrgs(filterName?: string, _options?: Configuration): Promise<RequestContext>;
    listSAMLConfigurations(_options?: Configuration): Promise<RequestContext>;
    updateLoginOrgConfigsMaxSessionDuration(body: MaxSessionDurationUpdateRequest, _options?: Configuration): Promise<RequestContext>;
    updateOrgConfig(orgConfigName: string, body: OrgConfigWriteRequest, _options?: Configuration): Promise<RequestContext>;
    updateOrgSamlConfigurations(body: OrgSAMLPreferencesUpdateRequest, _options?: Configuration): Promise<RequestContext>;
    updateSAMLConfiguration(samlConfigUuid: string, body: SAMLConfigurationUpdateRequest, _options?: Configuration): Promise<RequestContext>;
    uploadIdPMetadata(idpFile?: HttpFile, _options?: Configuration): Promise<RequestContext>;
}
export declare class OrganizationsApiResponseProcessor {
    /**
     * 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 getOrgConfig
     * @throws ApiException if the response code was not in [200, 299]
     */
    getOrgConfig(response: ResponseContext): Promise<OrgConfigGetResponse>;
    /**
     * 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 getSAMLConfiguration
     * @throws ApiException if the response code was not in [200, 299]
     */
    getSAMLConfiguration(response: ResponseContext): Promise<SAMLConfigurationResponse>;
    /**
     * 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 listGlobalOrgs
     * @throws ApiException if the response code was not in [200, 299]
     */
    listGlobalOrgs(response: ResponseContext): Promise<GlobalOrgsResponse>;
    /**
     * 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 listOrgConfigs
     * @throws ApiException if the response code was not in [200, 299]
     */
    listOrgConfigs(response: ResponseContext): Promise<OrgConfigListResponse>;
    /**
     * 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 listOrgs
     * @throws ApiException if the response code was not in [200, 299]
     */
    listOrgs(response: ResponseContext): Promise<ManagedOrgsResponse>;
    /**
     * 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 listSAMLConfigurations
     * @throws ApiException if the response code was not in [200, 299]
     */
    listSAMLConfigurations(response: ResponseContext): Promise<SAMLConfigurationsResponse>;
    /**
     * 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 updateLoginOrgConfigsMaxSessionDuration
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateLoginOrgConfigsMaxSessionDuration(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 updateOrgConfig
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateOrgConfig(response: ResponseContext): Promise<OrgConfigGetResponse>;
    /**
     * 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 updateOrgSamlConfigurations
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateOrgSamlConfigurations(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 updateSAMLConfiguration
     * @throws ApiException if the response code was not in [200, 299]
     */
    updateSAMLConfiguration(response: ResponseContext): Promise<SAMLConfigurationResponse>;
    /**
     * 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 uploadIdPMetadata
     * @throws ApiException if the response code was not in [200, 299]
     */
    uploadIdPMetadata(response: ResponseContext): Promise<void>;
}
export interface OrganizationsApiGetOrgConfigRequest {
    /**
     * The name of an Org Config.
     * @type string
     */
    orgConfigName: string;
}
export interface OrganizationsApiGetSAMLConfigurationRequest {
    /**
     * The UUID of the SAML configuration.
     * @type string
     */
    samlConfigUuid: string;
}
export interface OrganizationsApiListGlobalOrgsRequest {
    /**
     * The handle of the authenticated user.
     * @type string
     */
    userHandle: string;
    /**
     * Maximum number of results returned.
     * @type number
     */
    pageLimit?: number;
    /**
     * String to query the next page of results.
     * This key is provided with each valid response from the API in `meta.page.next_cursor`.
     * @type string
     */
    pageCursor?: string;
}
export interface OrganizationsApiListOrgsRequest {
    /**
     * Filter managed organizations by name.
     * @type string
     */
    filterName?: string;
}
export interface OrganizationsApiUpdateLoginOrgConfigsMaxSessionDurationRequest {
    /**
     * @type MaxSessionDurationUpdateRequest
     */
    body: MaxSessionDurationUpdateRequest;
}
export interface OrganizationsApiUpdateOrgConfigRequest {
    /**
     * The name of an Org Config.
     * @type string
     */
    orgConfigName: string;
    /**
     * @type OrgConfigWriteRequest
     */
    body: OrgConfigWriteRequest;
}
export interface OrganizationsApiUpdateOrgSamlConfigurationsRequest {
    /**
     * @type OrgSAMLPreferencesUpdateRequest
     */
    body: OrgSAMLPreferencesUpdateRequest;
}
export interface OrganizationsApiUpdateSAMLConfigurationRequest {
    /**
     * The UUID of the SAML configuration.
     * @type string
     */
    samlConfigUuid: string;
    /**
     * @type SAMLConfigurationUpdateRequest
     */
    body: SAMLConfigurationUpdateRequest;
}
export interface OrganizationsApiUploadIdPMetadataRequest {
    /**
     * The IdP metadata XML file
     * @type HttpFile
     */
    idpFile?: HttpFile;
}
export declare class OrganizationsApi {
    private requestFactory;
    private responseProcessor;
    private configuration;
    constructor(configuration: Configuration, requestFactory?: OrganizationsApiRequestFactory, responseProcessor?: OrganizationsApiResponseProcessor);
    /**
     * Return the name, description, and value of a specific Org Config.
     * @param param The request object
     */
    getOrgConfig(param: OrganizationsApiGetOrgConfigRequest, options?: Configuration): Promise<OrgConfigGetResponse>;
    /**
     * Get a single SAML configuration for the current organization by its UUID.
     * @param param The request object
     */
    getSAMLConfiguration(param: OrganizationsApiGetSAMLConfigurationRequest, options?: Configuration): Promise<SAMLConfigurationResponse>;
    /**
     * Returns organizations across regions for the authenticated user. The `user_handle` query parameter must match the authenticated user's handle.
     * @param param The request object
     */
    listGlobalOrgs(param: OrganizationsApiListGlobalOrgsRequest, options?: Configuration): Promise<GlobalOrgsResponse>;
    /**
     * Provide a paginated version of listGlobalOrgs returning a generator with all the items.
     */
    listGlobalOrgsWithPagination(param: OrganizationsApiListGlobalOrgsRequest, options?: Configuration): AsyncGenerator<GlobalOrgData>;
    /**
     * Returns all Org Configs (name, description, and value).
     * @param param The request object
     */
    listOrgConfigs(options?: Configuration): Promise<OrgConfigListResponse>;
    /**
     * Returns the current organization and its managed organizations in JSON:API format.
     * @param param The request object
     */
    listOrgs(param?: OrganizationsApiListOrgsRequest, options?: Configuration): Promise<ManagedOrgsResponse>;
    /**
     * Get the list of SAML configurations for the current organization. An organization has at most one SAML configuration.
     * @param param The request object
     */
    listSAMLConfigurations(options?: Configuration): Promise<SAMLConfigurationsResponse>;
    /**
     * Update the maximum session duration for the current organization.
     * The duration is specified in seconds.
     * @param param The request object
     */
    updateLoginOrgConfigsMaxSessionDuration(param: OrganizationsApiUpdateLoginOrgConfigsMaxSessionDurationRequest, options?: Configuration): Promise<void>;
    /**
     * Update the value of a specific Org Config.
     * @param param The request object
     */
    updateOrgConfig(param: OrganizationsApiUpdateOrgConfigRequest, options?: Configuration): Promise<OrgConfigGetResponse>;
    /**
     * Update the SAML preferences for the current organization.
     *
     * Use this endpoint to set the just-in-time (JIT) provisioning domains and the default role
     * assigned to just-in-time provisioned users.
     * @param param The request object
     */
    updateOrgSamlConfigurations(param: OrganizationsApiUpdateOrgSamlConfigurationsRequest, options?: Configuration): Promise<void>;
    /**
     * Update a single SAML configuration for the current organization.
     *
     * Use this endpoint to enable or disable identity-provider-initiated login, set the
     * just-in-time provisioning domains, and set the default role assigned to
     * just-in-time provisioned users. A default role is required to enable just-in-time provisioning.
     * @param param The request object
     */
    updateSAMLConfiguration(param: OrganizationsApiUpdateSAMLConfigurationRequest, options?: Configuration): Promise<SAMLConfigurationResponse>;
    /**
     * Endpoint for uploading IdP metadata for SAML setup.
     *
     * Use this endpoint to upload or replace IdP metadata for SAML login configuration.
     * @param param The request object
     */
    uploadIdPMetadata(param?: OrganizationsApiUploadIdPMetadataRequest, options?: Configuration): Promise<void>;
}
