import { Theme } from '../models/common/theme';
/**
* Interface that represents the licensing status of a Rainbow Edge.
*
* @public
*/
export interface IEdgeStatus {
/**
* Edge status.
*
* @readonly
*/
readonly status: 'init' | 'active' | 'warning' | 'error';
/**
* Edge MAC address.
*
* @readonly
*/
readonly macAdress: string;
/**
* Edge uuid.
*
* @readonly
*/
readonly uuid: string;
/**
* Edge activation date.
*/
readonly activationDate: string;
}
/**
* Interface that represents the information related to a company.
* Depending on contact type, by 'company' we mean
* - For a rainbow user, the name of the company to which he belong.
* In this case, the company is a entity managed by administrator(s)
* - For a personal or business directory contact, the name of a company indicated for information purposes.
* - For a O365 contact owned by a rainbow user, the name of the company to which the user belong.
* Depending on the type of contact, not all properties may be present.
*/
export interface CompanyInfo {
/**
* The company unique identifier.
* Information only available only for a rainbow user.
* @readonly
* @internal
*/
id?: string;
/**
* The company name.
* @readonly
*/
name: string;
/**
* The company slogan.
* @readonly
*/
slogan?: string;
logo?: string;
lastAvatarUpdateDate?: any;
companyFeatures?: any;
}
/**
* @internal
* List of modes that specify how activation of O365 calendar and teams presence synchronization are handled for company's users.
* Available only for the connected user and when Office365 is configured on admin side.
*/
export declare enum Office365AdminMode {
/**
* The user should grant authorization and activate synchronization to their calendar and teams presence by himself.
*/
USER_CONSENT = "user_consent",
/**
* Admin has granted authorization but let all users to activate synchronization to their calendar and teams presence.
*/
ADMIN_CONSENT = "admin_consent",
/**
* Admin has granted authorization but all users are triggered each day to activate synchronization
* to their calendar and teams presence.
*/
USER_DELEGATED = "user_delegated",
/**
* Admin has granted authorization and subcribe all users limited to 650
* in order to synchronize them to calendar and teams presence.
*
* @remarks Only allowed if {@link Company.isOffice365AdminDelegatedModeAuthorized} is true
*/
ADMIN_DELEGATED = "admin_delegated",
/**
* Admin has granted authorization and subcribe all users in order to synchronize them to calendar.
* Only Rainbow presence is synchornized to teams.
*/
APPLICATION = "application"
}
/**
* This class is used to represent a company in Rainbow.
* A company is a set of Rainbow users grouped in that entity.
* A company is managed by one or several administrators.
* A company can be visible by users that are not inside this company of not.
*/
export declare class Company {
/**
* Value can be:
* - 'initializing': When the company is initializing,
* - 'active': When the company is active,
* - 'terminated': When the company is closed
*/
static StatusValues: string[];
/**
* Value can be:
* - 'private': When the users of this company are not visible from an external user,
* - 'organization': When the users of this company are only visible from an extenal user of the same organization,
* - 'public': When the users of this company are visible from an external user
*/
static VisibilityValuesWithOrganization: string[];
static VisibilityValues: string[];
/**
* Value can be:
* - 'noAnalytics'
* - 'companyLevel'
* - 'conversationLevel'
*/
static PrivacyValues: string[];
static AnonymizationLevels: string[];
/**
* Value can be:
* - 'self-employed': For a single person company,
* - '1-10 employees': For a company with 1 to 10 employees,
* - "51-200 employees": For a company with 51 to 200 employees,
* - "201-500 employees": For a company with 201 to 500 employees,
* - "501-1000 employees": For a company with 501 to 1000 employees,
* - "1001-5000 employees": For a company with 1001 to 5000 employees,
* - "5001-10,000 employees": For a company with 5001 to 10,000 employees,
* - "10,001+ employees": For a company with more than 10000 employees
*/
static SizeValues: {
"self-employed": string;
"1-10 employees": string;
"11-50 employees": string;
"51-200 employees": string;
"201-500 employees": string;
"501-1000 employees": string;
"1001-5000 employees": string;
"5001-10,000 employees": string;
"10,001+ employees": string;
};
static OfferTypes: string[];
/**
* Value can be:
* - 'VAD': For Business Partner who is a Value Added Distributor,
* - 'DR': For Business Partner who is a Direct Reseller,
* - 'IR': For Business Partner who is an Indirect Reseller
*/
static BPTypes: string[];
static BPTypeLabels: {
IR: string;
VAD: string;
DR: string;
};
static BPBusinessModels: string[];
static BPBusinessModelLabels: {
resell: string;
referral: string;
};
/**
* Value can be:
* - 'all': Admin of this company is allowed to downgrade and upgrade the number of all subscriptions (default),
* - 'increase_only': Admin of this company is only allowed to increase the number of all subscriptions,
* - 'monthly': Admin of this company is downgrade and upgrade the number of monthly subscriptions only (ie. not prepaid).
*/
static adminAllowedUpdateSubscriptionsOperations: string[];
static BPBusinessTypes: {
DEFAULT: string;
VOICE_BY_ALE: string;
VOICE_BY_PARTNER: string;
CONFERENCE: string;
RAINBOW_EDGE: string;
};
static EconomicActivityClassificationTypes: {
/** Not defined */
NONE: string;
/** Agriculture based activity */
A: string;
/** Mining based activity */
B: string;
/** Manifacturing based activity */
C: string;
/** Electricity based activity */
D: string;
/** Water supply based activity */
E: string;
/** Construction based activity */
F: string;
/** Wholesale based activity */
G: string;
/** Transportation based activity */
H: string;
/** Accomodation based activity */
I: string;
/** Information and communication based activity */
J: string;
/** Financial based activity */
K: string;
/** Real estate based activity */
L: string;
/** Professional based activity */
M: string;
/** Administrative based activity */
N: string;
/** Public administration based activity */
O: string;
/** Education based activity */
P: string;
/** Human health based activity */
Q: string;
/** Arts based activity */
R: string;
/** Other service based activity */
S: string;
/** Activities of households as employer based activity */
T: string;
/** Activities of extraterritorial organisations and bodies based activity */
U: string;
};
/**
* Rainbow application customisation
*/
private static userProfileAttributes;
private static attributes;
/**
* @param id - Id of the company
* @param name - Name of the company
* @returns the created company
*/
static create(id: string, name: string): Company;
/**
* @param data - The object containing the attributes of the company
* @returns the created company
*/
static createFromData(data: any): Company;
/**
* Returns a copy of the company's data but expurgated by the unwanted and undefined optional properties.
*
* @param data - The object containing the attributes of the company
* @param userContact - The logged user
* @returns the updated company
*/
static prune(data: any, userContact: any): Company;
id: string;
name: string;
status: string;
state: string;
logo: any;
nameForLogs: string;
filterName: string;
offerType: string;
isBP: boolean;
bpId: string;
bpType: string;
bpBusinessType: string[];
private rxSubject;
banner: any;
avatarShape: string;
slogan: string;
country: any;
timezone: string;
economicActivityClassification: any;
size: any;
website: string;
companyContactId: string;
description: string;
supportEmail: string;
lastAvatarUpdateDate: any;
lastBannerUpdateDate: any;
selectedSplashScreen: {
lastUpdateDate?: string;
isForced?: boolean;
uploadedUsed?: boolean;
companyId?: string;
};
visibility: string;
numberUsers: number;
organisationId: string;
/**
* Office365 tenant configured for this company.
*/
office365Tenant: string;
/**
* Scopes granted to Rainbow for usage of Microsoft Office365 APIs.
*
* Non-exhaustive list of values : 'directory' | 'calendar' | 'provisioning' | 'meeting_scheduler' | 'o365_admin' | 'teams' | 'personal_contacts'
*/
office365ScopesGranted: string[];
/**
* Indicates if the admin delegated mode could be activated (ie. 'office365AdminMode' property).
*/
readonly isOffice365AdminDelegatedModeAuthorized: boolean;
/**
* Specifies how activation of O365 calendar and teams presence synchronization are handled for company's users.
*/
office365AdminMode: Office365AdminMode;
/**
* Indicates if all users should be synchronized with their office365 Calendar presence.
*/
office365SynchronizeCalendarPresence: boolean;
/**
* Indicates if all users should be synchronized with their office365 Teams presence.
*/
office365SynchronizeTeamsPresence: boolean;
bpHasRightToConnect: boolean;
cloudPbxRecordingInboundOnly: boolean;
hideContractInfo: boolean;
displayIdrFiles: boolean;
allowUsersSelectTheme: boolean;
allowUsersSelectPublicTheme: boolean;
selectedTheme: any;
originalSelectedTheme: any;
selectedThemeCustomers: any;
originalSelectedThemeCustomers: any;
allowDeviceFirmwareSelection: boolean;
selectedDeviceFirmware: string;
allowCloudPbxDeviceAccess: boolean;
isEdge: boolean;
edgeData: IEdgeStatus;
privacy: any;
dataLocation: any;
supportUrlFAQ: string;
disableCCareAdminAccess: boolean;
disableCCareAdminAccessCustomers: boolean;
disableCCareAdminAccessResellers: boolean;
adminHasRightToUpdateSubscriptions: boolean;
adminAllowedUpdateSubscriptionsOps: string;
sendPrepaidSubscriptionsNotification: boolean;
adminHasTheRightToEnableDeskphoneFailover: boolean;
adminServiceNotificationsLevel: string;
teamsPresenceOnRainbowBusyPhone: string;
endOfConferenceBehavior: {
behavior: 'rainbow' | 'custom_url' | 'no_redirect';
customUrl?: string;
};
enableNewVirusScanPolicy: boolean;
referrals: string[];
constructor(data: any);
/**
* Allows to update an existing company with data from server.
*
* @param data - The object containing the updated attributes of the company
*/
updateFromData(data: any): void;
getNameForLogs(): string;
/**
* Gets the status of the company
* @returns True if the company is active
*/
isActive(): boolean;
isInitializing(): boolean;
isInvited(): boolean;
/**
* @public
* @returns true if the company in the Freemium business model, otherwise false.
*/
isFreemium(): boolean;
/**
* @public
* @returns true if the company has contracted the Premium Plan, otherwise false.
*/
isPremium(): boolean;
/**
* @public
* @returns true if the company is a Value Added Distributor (VAD) Business Partner company, otherwise false.
*/
isVAD(): boolean;
/**
* @public
* @returns true if the company is an Indirect Reseller (IR) Business Partner company, otherwise false.
*/
isIR(): boolean;
/**
* @public
* @returns true if the company is a Direct Reseller (DR) Business Partner company, otherwise false.
*/
isDR(): boolean;
/**
* @public
* @returns true if the company is End Customer (EC) company, otherwise false.
*/
isEC(): boolean;
/**
* @public
* @returns true if the company is the Orange company, otherwise false.
*/
isOrange(): boolean;
/**
* @public
* @returns true if the company is a distributor BP is allowed to sell Rainbow Edge.
*/
hasRightToSellRainbowEdge(): boolean;
onChange(callback: any): import("rxjs").Subscription;
sendChangeEvent(type: string, value?: any): any;
getSelectedWhiteThemeId(): string;
setSelectedWhiteThemeId(lightId: any): void;
getSelectedDarkThemeId(): string;
setSelectedDarkThemeId(darkId: any): void;
setSelectedTheme(theme: Theme): void;
getSelectedCustomerWhiteThemeId(): string;
setSelectedCustomerWhiteThemeId(lightId: any): void;
getSelectedCustomerDarkThemeId(): string;
setSelectedCustomerDarkThemeId(darkId: any): void;
setSelectedThemeCustomers(theme: Theme): void;
toJSON(): any;
getPrivacy(): string;
setPrivacy(privacy: any): void;
}
//# sourceMappingURL=company.model.d.ts.map