import { BaseAPI } from '../../common/BaseAPI';
import Configuration from '../../common/Configuration';
import SubOrganizationsApi from './subOrganizations/SubOrganizationsApi';
import TenantsApi from './tenants/TenantsApi';
import InvitationsApi from './invitations/InvitationsApi';
import GroupsApi from './groups/GroupsApi';
import Organization from '../../models/Organization';
import UpdateOrganizationRequest from '../../models/UpdateOrganizationRequest';
import PaginationResponse from '../../models/PaginationResponse';
/**
 * OrganizationsApi - object-oriented interface
 * @export
 * @class OrganizationsApi
 * @extends {BaseAPI}
 */
export default class OrganizationsApi extends BaseAPI {
    subOrganizations: SubOrganizationsApi;
    tenants: TenantsApi;
    invitations: InvitationsApi;
    groups: GroupsApi;
    constructor(configuration: Configuration);
    /**
     * @summary Add Organization
     * @param {Organization} organization Organization Details
     * @throws {BitmovinError}
     * @memberof OrganizationsApi
     */
    create(organization?: Organization): Promise<Organization>;
    /**
     * @summary Organization Details
     * @param {string} organizationId ID of the organization
     * @throws {BitmovinError}
     * @memberof OrganizationsApi
     */
    get(organizationId: string): Promise<Organization>;
    /**
     * @summary List Organizations
     * @throws {BitmovinError}
     * @memberof OrganizationsApi
     */
    list(): Promise<PaginationResponse<Organization>>;
    /**
     * @summary Update Organization
     * @param {string} organizationId ID of the organization
     * @param {UpdateOrganizationRequest} updateOrganizationRequest Organization Details fields to be updated
     * @throws {BitmovinError}
     * @memberof OrganizationsApi
     */
    update(organizationId: string, updateOrganizationRequest?: UpdateOrganizationRequest): Promise<Organization>;
}
