import { AutomationClient } from "../automationClient"; import { EventFired } from "../HandleEvent"; import { HandlerContext } from "../HandlerContext"; import { HandlerResult } from "../HandlerResult"; import { CommandInvocation } from "../internal/invoker/Payload"; import { CommandIncoming, EventIncoming, RequestProcessor } from "../internal/transport/RequestProcessor"; import { Destination, MessageOptions } from "../spi/message/MessageClient"; /** * Listener to receive automation client, command and event handler execution related events. * * Register listener implementations in the configuration.listeners property of the client. */ export interface AutomationEventListener { /** * WebSocket registration was successful * @param handler */ registrationSuccessful(handler: RequestProcessor): void; /** * Client startup successful * @param client */ startupSuccessful?(client: AutomationClient): Promise; /** * HandlerContext object created * This gets invoked for every incoming command and event invocation * @param context */ contextCreated(context: HandlerContext): void; /** * Raw incoming command payload * @param payload */ commandIncoming(payload: CommandIncoming): void; /** * Converted command invocation and created HandlerContext * @param payload * @param ctx */ commandStarting(payload: CommandInvocation, ctx: HandlerContext): void; /** * Command execution successful * @param payload * @param ctx * @param result */ commandSuccessful(payload: CommandInvocation, ctx: HandlerContext, result: HandlerResult): Promise; /** * Command execution failed * @param payload * @param ctx * @param err */ commandFailed(payload: CommandInvocation, ctx: HandlerContext, err: any): Promise; /** * Raw incoming event payload * @param payload */ eventIncoming(payload: EventIncoming): void; /** * Converted event invocation and created HandlerContext * @param payload * @param ctx */ eventStarting(payload: EventFired, ctx: HandlerContext): void; /** * Event execution successful * @param payload * @param ctx * @param result */ eventSuccessful(payload: EventFired, ctx: HandlerContext, result: HandlerResult[]): Promise; /** * Event execution failed * @param payload * @param ctx * @param err */ eventFailed(payload: EventFired, ctx: HandlerContext, err: any): Promise; /** * Message was sent via the MessageClient * @param message * @param destinations * @param options * @param ctx */ messageSent(message: any, destinations: Destination | Destination[], options: MessageOptions, ctx: HandlerContext): Promise; } export declare class AutomationEventListenerSupport implements AutomationEventListener { registrationSuccessful(handler: RequestProcessor): void; startupSuccessful(client: AutomationClient): Promise; contextCreated(context: HandlerContext): void; commandIncoming(payload: CommandIncoming): void; commandStarting(payload: CommandInvocation, ctx: HandlerContext): void; commandSuccessful(payload: CommandInvocation, ctx: HandlerContext, result: HandlerResult): Promise; commandFailed(payload: CommandInvocation, ctx: HandlerContext, err: any): Promise; eventIncoming(payload: EventIncoming): void; eventStarting(payload: EventFired, ctx: HandlerContext): void; eventSuccessful(payload: EventFired, ctx: HandlerContext, result: HandlerResult[]): Promise; eventFailed(payload: EventFired, ctx: HandlerContext, err: any): Promise; messageSent(message: any, destinations: Destination | Destination[], options: MessageOptions, ctx: HandlerContext): Promise; }