import { BehaviorSubject } from "rxjs"; import { ThemeColor } from '../../models/common/themeColor'; /** * @enum {string} * @public * @readonly * @description Enumeration of the possible theme's type. */ export declare enum ThemeType { LIGHT = "light", DARK = "dark" } /** * @enum {string} * @public * @readonly * @description Enumeration of the possible theme's visibility. */ export declare enum ThemeVisibility { PRIVATE = "private", PUBLIC = "public" } /** * @enum {string} * @public * @readonly * @description Enumeration of the possible theme's type. */ export declare enum ThemeAvatarShape { SQUARE = "square", CIRCLE = "circle" } /** * @interface IThemeDTO * @description * Data Transfer Object (DTO) for transferring required data that represents a Theme available for a company. */ export interface IThemeDTO { id?: string; name: string; type?: ThemeType; ownedByCompany?: string; website?: string; isRainbowDefaultTheme?: boolean; isWhiteLabelTheme?: boolean; visibility?: ThemeVisibility; avatarShape?: ThemeAvatarShape; lastAvatarUpdateDate?: string | null; UIElements?: Record[]; } /** * @interface ITheme * @description * Interface that represents a theme that is available for a company. */ export interface ITheme extends Omit { displayName: string; svgPreview: any; logoSrc: string; cssClassName: string; themeColors: ThemeColor[]; getThemeColorOfKey(cssKey: string): ThemeColor | undefined; } /** * @class * @name Theme * @description * This class is used to represent a Theme intended to a Rainbow Company. */ export declare class Theme implements Required { /** * @public * @property {string} id The theme identifier. * @readonly */ id: string; /** * @public * @property {string} name The theme name. * @readonly */ name: string; /** * @public * @property {string} displayName The theme name to display. * @readonly */ displayName: string; /** * @public * @property {ThemeType} type This string informs if the theme is a white or a dark type. * @readonly */ type: ThemeType; /** * @public * @property {boolean} isRainbowDefaultTheme Is the rainbow default Theme. * @readonly */ isRainbowDefaultTheme: boolean; /** * @public * @property {boolean} isWhiteLabelTheme Is a custom white label Theme published by a Business Partner. * @readonly */ isWhiteLabelTheme: boolean; /** * @public * @property {ThemeVisibility} visibility The theme identifier. * @readonly */ visibility: ThemeVisibility; /** * @public * @property {string} ownedByCompany This id of the company owning the theme. * @readonly */ ownedByCompany: string; /** * @public * @property {string} website The theme web site Url. * @readonly */ website: string; /** * @public * @property {string} lastAvatarUpdateDate The theme logo last modification date. * @readonly */ lastAvatarUpdateDate: string; /** * @public * @property {ThemeAvatarShape} avatarShape The theme logo shape (square, round). * @readonly */ private _avatarShape; avatarShapeSubject: BehaviorSubject; get avatarShape(): ThemeAvatarShape; set avatarShape(value: ThemeAvatarShape); /** * @public * @property {string} logoSrc The theme logo url to display. * @readonly */ private _logoSrc; logoSrcSubject: BehaviorSubject; get logoSrc(): string; set logoSrc(value: string); /** * @public * @property {string} themeColors Array of Colors. * @readonly */ themeColors: ThemeColor[]; /** * @public * @property {any} svgPreview Theme preview SVG. * @readonly */ svgPreview: any; /** * @public * @property {string} cssClassName The CSS Class Name. * @readonly */ cssClassName: string; isPublic(): boolean; isPrivate(): boolean; isOwnedBy(companyId: string): boolean; isWhiteLabel(): boolean; isLogoAvailable(): boolean; isWhiteType(): boolean; getThemeColorOfKey(cssKey: string): ThemeColor | undefined; compareTo(theme: Theme): boolean; compareToWithoutLogo(theme: Theme): boolean; constructor(data: Partial); static createFromData(data: IThemeDTO): Theme; static create(id: string, name: string, displayName: string, visibility: ThemeVisibility): Theme; static createStaticWebTheme(name: string, displayName: string, visibility: ThemeVisibility): Theme; static createNewThemeWithConfigurableThemeColors(theme: Theme, isWhiteLabel?: boolean): Theme; static duplicateTheme(theme: Theme): Theme; static duplicateThemeColorsFromTheme(theme: Theme, origTheme: Theme): void; private static generateUUID24Char; } //# sourceMappingURL=theme.d.ts.map