import { MessageBusTopicMediator } from "@omnia/fx"; import { ActionHandler, ActionRegistration, ActionHandlerRegistrationId, ApiPath, GuidValue, IActionHandlerInstance, IActionHandlerInstanceProperties, IActionHandlerSettings, IExtendApiManifestWithConfiguration, IMessageBusTopicPublishSubscriber, MultilingualString } from "@omnia/fx-models"; import { MessageBusExposeOnlySubscription } from "../../core"; export interface IActionHandlerTriggeredRendererComponent { actionHandler: ActionHandlerInstance; } export interface IActionHandlerEventsApi { actionTriggered: IMessageBusTopicPublishSubscriber; actionInitialized: IMessageBusTopicPublishSubscriber; actionCompleted: IMessageBusTopicPublishSubscriber; } export interface IActionApi { registrations: Promise; handlers: Promise; } declare module "@omnia/fx-models/ux/UxApi" { interface IOmniaUxApi { actions: IActionApi; } interface IOmniaUxExtendApiManifest { actions: { registrations: ApiPath; handlers: IExtendApiManifestWithConfiguration; }; } } export interface IActionHandlerRegisterApi { register: (action: ActionHandlerRegistration) => void; getActionHandler: (id: ActionHandlerRegistrationId) => Promise ActionHandlerBase>; } export interface IActionRegistrationApi { registerActionHandler: (action: ActionRegistration | ActionRegistration[]) => void; getAllHandlers: () => ActionRegistration[]; } export declare abstract class ActionHandlerBase implements IActionHandlerInstanceProperties { abstract onActivated(): void | Promise; abstract onTriggered(renderingCallback: (elementName: string, themeTargetId?: string, domProps?: Object) => void, setFocusedElementCallback?: () => Promise): any; abstract onDisposing(): any; customTextColor?(settings: IActionHandlerSettings): string; customBackgroundColor?(settings: IActionHandlerSettings): string; constructor(); id: GuidValue; typeId: ActionHandlerRegistrationId; toolTip: MultilingualString; settings: IActionHandlerSettings; loading: boolean; disabled: boolean; displayText: MultilingualString; text: MultilingualString; customRendererElementName: string; hidden: boolean; isTriggered: boolean; onChanged: MessageBusTopicMediator<{ propertyName: string; newValue: any; oldValue: any; }>; private _reactiveProps; protected createReactiveProperty(propName: string, value: any): void; private configProxy; } export declare class ActionHandlerRegistration { typeId: ActionHandlerRegistrationId; handler: new () => ActionHandlerBase; constructor(typeId: ActionHandlerRegistrationId, handler: new () => ActionHandlerBase); } export declare class ActionHandlerContext { private serviceContainerContext; createInstance(actionHandler: ActionHandler): Promise; } export declare class ActionHandlerInstance implements IActionHandlerInstance { private instance; private actionHandlerStore; constructor(instance: ActionHandlerBase, actionHandler: ActionHandler); id: GuidValue; typeId: ActionHandlerRegistrationId; toolTip: MultilingualString; settings: IActionHandlerSettings; loading: boolean; disabled: boolean; displayText: MultilingualString; text: MultilingualString; customRendererElementName: string; hidden: boolean; isTriggered: boolean; private _initializedMessage; private _triggeredMessage; private _disposedMessage; private _initialized; initialized(): void | Promise; triggered(renderingCallback: (elementName: string, themeTargetId?: string, domProps?: Object) => void, setFocusedElementCallback?: () => Promise): void; customTextColor(): string; customBackgroundColor(): string; dispose(): void; onActivated(): MessageBusExposeOnlySubscription; onTriggered(): MessageBusExposeOnlySubscription; onDisposed(): MessageBusExposeOnlySubscription; onChanged(): MessageBusExposeOnlySubscription<{ propertyName: string; newValue: any; oldValue: any; }>; private configProxy; }