/** Core */ import { Generic } from "cmf.core/src/core"; import { InternalLayoutBaseDef } from "./layoutDef"; /** * Service metadata extension keys */ export interface LayoutMetadataKey { key: string; value: any; } /** * Service metadata associated with a layout */ export interface LayoutMetadata { token: string; userRole?: string; userAccount?: string; extensionKeys?: LayoutMetadataKey[]; } /** * Level of layout affectation for the whole system */ export declare enum LayoutAffectationLevel { /** * Current user settings */ MyDefault = 0, /** * ALL users settings */ UsersDefault = 1 } export declare abstract class LayoutService extends Generic { /** * Generic framework accessor */ private static _generic; /** * Save layout for some UIPage * @param pageName Page unique name * @param layout Layout tree * @param level Personalization level * @param properties Custom properties to insert (should match SmartTable column names) */ static saveLayoutForUIPage(pageName: string, layout: InternalLayoutBaseDef, level: LayoutAffectationLevel, properties?: LayoutMetadataKey[]): Promise; /** * Load layout for current page/component * @param pageName UIPage name * @param properties Properties t * @param level LayoutPersonalizationLevel (My or AllUsers) */ static loadLayoutForUIPage(pageName: string, properties: LayoutMetadataKey[], level?: LayoutAffectationLevel): Promise; /** * Merge a new layout into an existing one * @param layoutToMergeTo Base layout to be used in the merge * @param layoutToBeMerged Layout to be merged with the layoutToMergeTo */ private static mergeLayout; }