import { Type } from '@angular/core'; import { SafeStyle } from '@angular/platform-browser'; type TUrl = undefined | 'none' | 'back' | string; export declare namespace NsWidgetResolver { type UnitPermissionPrimitive = undefined | null | string; interface IUnitPermissionObject { all: UnitPermissionPrimitive | string[]; none: UnitPermissionPrimitive | string[]; some: UnitPermissionPrimitive | string[]; } type UnitPermission = UnitPermissionPrimitive | string[] | IUnitPermissionObject | Pick | Pick | Pick | Exclude | Exclude | Exclude; interface IPermissions { enabled: boolean; available: boolean; roles?: UnitPermission; features?: UnitPermission; groups?: UnitPermission; } interface IBaseConfig { widgetType: string; widgetSubType: string; } interface IRegistrationConfig extends IBaseConfig { component: Type>; } interface IRegistrationsPermissionConfig extends IBaseConfig { widgetPermission?: IPermissions; } interface IRenderConfigWithTypedData extends IRegistrationsPermissionConfig { widgetData: T; widgetInstanceId?: string; widgetHostClass?: string; widgetHostStyle?: { [key: string]: string; }; } type IRenderConfigWithAnyData = IRenderConfigWithTypedData; interface IWidgetData extends Omit, 'widgetPermission' | 'widgetHostStyle'> { widgetSafeStyle?: SafeStyle; updateBaseComponent: (widgetType: string, widgetSubType: string, widgetInstanceId?: string, widgetHostClass?: string, widgetSafeStyle?: SafeStyle) => void; } interface ITitle { title: string; url: TUrl; icon?: string; } } export {};