import { DynamicContentStore } from "./DynamicContentStore"; export interface CustomizationComponentOperations { operations: Array; } export interface UICustomization { schemaVersion: number; version: number; url: string; createdAt: string; changes: { components: Record; }; } export type CustomizationComponentOperation = AddOperation | ReplaceOperation | RemoveOperation | AddWrapperOperation; export declare enum NativeComponents { customerHistory = "customer-history", crmContainer = "crm-container", taskWrapupTab = "task-wrapup-tab", profileConnectorTabs = "profile-connector-tabs", customerProfile = "customer-profile", deviceManager = "device-manager", flexUnifyContainer = "flex-unify-container", profileHeader = "profile-header", profileHeaderText = "profile-header-text", localeSelector = "locale-selector" } export interface AddOperation { operation: "add"; details: AddOperationDetails; } interface AddOperationDetailsBase { type: "native" | "custom"; sortOrder?: number; align?: "start" | "end"; key?: string; } interface AddNativeOperationDetails extends AddOperationDetailsBase { type: "native"; component: NativeComponents; } interface AddCustomOperationDetails extends AddOperationDetailsBase { type: "custom"; customComponent: string; pluginUniqueName: string; } type AddOperationDetails = AddNativeOperationDetails | AddCustomOperationDetails; export interface RemoveOperation { operation: "remove"; details: RemoveOperationDetails; } interface RemoveOperationDetailsBase { type: "native" | "custom"; key: string; } interface RemoveNativeOperationDetails extends RemoveOperationDetailsBase { type: "native"; key: string; } interface RemoveCustomOperationDetails extends RemoveOperationDetailsBase { type: "custom"; key: string; ref: string; pluginUniqueName: string; } type RemoveOperationDetails = RemoveNativeOperationDetails | RemoveCustomOperationDetails; export interface ReplaceOperation { operation: "replace"; details: ReplaceOperationDetails; } interface ReplaceOperationDetailsBase { type: "native" | "custom"; } interface ReplaceNativeOperationDetails extends ReplaceOperationDetailsBase { type: "native"; component: NativeComponents; } interface ReplaceCustomOperationDetails extends ReplaceOperationDetailsBase { type: "custom"; customComponent: string; pluginUniqueName: string; } type ReplaceOperationDetails = ReplaceNativeOperationDetails | ReplaceCustomOperationDetails; export interface AddWrapperOperation { operation: "addWrapper"; details: AddWrapperOperationDetails; } interface AddWrapperOperationDetails { type: "custom"; customComponent: string; pluginUniqueName: string; } interface CustomizationSchemaComponent { store: DynamicContentStore; } export type CustomizationSchema = Record; export {};