/// <reference types="node" />
import { SdkClient } from "../common/sdk-client";
import { TenantManagementModels } from "./tenant-management-models";
/**
 * The Tenant Management API provides endpoints for managing subtenants,
 * and the legal configuration and the basic properties of tenants
 *
 * @export
 * @class TenantManagementClient
 * @extends {SdkClient}
 */
export declare class TenantManagementClient extends SdkClient {
    private _baseUrl;
    /**
     * Get the complete legal information configuration of current tenant
     *
     * @returns {Promise<TenantManagementModels.LegalConfiguration>}
     *
     * @memberOf TenantManagementClient
     */
    GetLegalConfigRegions(): Promise<TenantManagementModels.LegalConfiguration>;
    /**
     * Creates tenant legal information
     *
     * @param {TenantManagementModels.LegalConfiguration} legalConfig
     * @returns {Promise<TenantManagementModels.LegalConfigurationResource>}
     *
     * @memberOf TenantManagementClient
     */
    PostLegalConfigRegions(legalConfig: TenantManagementModels.LegalConfiguration): Promise<TenantManagementModels.LegalConfigurationResource>;
    /**
     * Update a region configuration of current tenant
     *
     * @param {string} regionId
     * @param {TenantManagementModels.Region} region
     * @param {{ ifMatch: string }} params
     * @returns {Promise<TenantManagementModels.RegionResource>}
     *
     * @memberOf TenantManagementClient
     */
    PutLegalConfigRegions(regionId: string, region: TenantManagementModels.Region, params: {
        ifMatch: string;
    }): Promise<TenantManagementModels.RegionResource>;
    /**
     * Delete legal Config Region
     *
     * @memberOf TenantManagementClient
     */
    DeleteLegalConfigRegions(): Promise<void>;
    /**
     * Get specific legal information
     *
     * ! Fix: This was manually created in 3.12.0 as MindSphere has a copy/paste error
     * ! saying that this method returns LegalConfiguration
     *
     * @returns {Promise<TenantManagementModels.LegalInfo>}
     *
     * @memberOf TenantManagementClient
     */
    GetLegalInfo(): Promise<TenantManagementModels.LegalInfo>;
    /**
     * Get the region specific legal information for a given tenant with fallback logic to core tenant
     *
     * ! Fix: This was manually created in 3.12.0 as MindSphere has a copy/paste error
     * ! saying that this method returns LegalConfiguration
     *
     * @param {string} tenantId
     * @returns {Promise<TenantManagementModels.LegalInfo>}
     *
     * @memberOf TenantManagementClient
     */
    GetLegalInfoForTenant(tenantId: string): Promise<TenantManagementModels.LegalInfo>;
    /**
     * Get the region specific legal information for a given tenant without fallback logic
     *
     * ! Fix: This was manually created in 3.12.0 as MindSphere has a copy/paste error
     * ! saying that this method returns LegalConfiguration
     *
     * @param {string} tenantId
     * @returns {Promise<TenantManagementModels.LegalInfo>}
     *
     * @memberOf TenantManagementClient
     */
    GetLegalInfoForSpecificTenant(tenantId: string): Promise<TenantManagementModels.LegalInfo>;
    /**
     * Get tenant info
     *
     * @returns {Promise<TenantManagementModels.TenantInfo>}
     *
     * @memberOf TenantManagementClient
     */
    GetTenantInfo(): Promise<TenantManagementModels.TenantInfo>;
    /**
     * Patch tenant info
     *
     * @param {TenantManagementModels.TenantInfoUpdateProperties} tenantInfoUpdateProperties
     * @param {{ ifMatch: string }} params
     *
     * @memberOf TenantManagementClient
     */
    PatchTenantInfo(tenantInfoUpdateProperties: TenantManagementModels.TenantInfoUpdateProperties, params: {
        ifMatch: string;
    }): Promise<void>;
    /**
     * Get tenant logo
     *
     * @returns {Promise<Response>}
     *
     * @memberOf TenantManagementClient
     */
    GetTenantInfoLogo(): Promise<Response>;
    /**
     * Upload tenant logo
     *
     * @param {Buffer} file
     * @param {string} [name]
     * @param {string} [mimeType]
     * @returns {Promise<Response>}
     *
     * @memberOf TenantManagementClient
     */
    PostTenantInfoLogo(file: Buffer, name?: string, mimeType?: string): Promise<Response>;
    /**
     * Get tenant logo metadata
     *
     * @returns {Promise<TenantManagementModels.UploadedFileResource>}
     *
     * @memberOf TenantManagementClient
     */
    GetTenantInfoLogoMetaData(): Promise<TenantManagementModels.UploadedFileResource>;
    /**
     * Get subtenants
     *
     * @returns {Promise<TenantManagementModels.PageSubtenantResource>}
     *
     * @memberOf TenantManagementClient
     */
    GetSubtenants(): Promise<TenantManagementModels.PageSubtenantResource>;
    /**
     * Create a subtenant
     *
     * @param {TenantManagementModels.Subtenant} subtenant
     * @returns {Promise<TenantManagementModels.SubtenantResource>}
     *
     * @memberOf TenantManagementClient
     */
    PostSubtenant(subtenant: TenantManagementModels.Subtenant): Promise<TenantManagementModels.SubtenantResource>;
    /**
     * Get a subtenant by id.
     *
     * @param {string} id
     * @returns {Promise<TenantManagementModels.SubtenantResource>}
     *
     * @memberOf TenantManagementClient
     */
    GetSubtenant(id: string): Promise<TenantManagementModels.SubtenantResource>;
    /**
     * Update a subtenant by id
     *
     * @param {string} id
     * @param {TenantManagementModels.SubtenantUpdateProperties} subtenantUpdateProperties
     * @param {{ ifMatch: string }} params
     * @returns {Promise<TenantManagementModels.SubtenantResource>}
     *
     * @memberOf TenantManagementClient
     */
    PutSubtenant(id: string, subtenantUpdateProperties: TenantManagementModels.SubtenantUpdateProperties, params: {
        ifMatch: string;
    }): Promise<TenantManagementModels.SubtenantResource>;
    /**
     * Delete a subtenant by id
     *
     * @param {string} id
     *
     * @memberOf TenantManagementClient
     */
    DeleteSubtenant(id: string): Promise<void>;
}
