import { EventFired } from "../HandleEvent";
import { HandlerContext } from "../HandlerContext";
import { HandlerResult } from "../HandlerResult";
import { CommandInvocation } from "../internal/invoker/Payload";
import { Automations } from "../internal/metadata/metadata";
import { CommandHandlerMetadata, EventHandlerMetadata } from "../metadata/automationMetadata";
import { AutomationServer } from "./AutomationServer";
export declare const NoEventHandlersError = "NO_EVENT_HANDLERS";
export declare function noEventHandlersWereFound(result: HandlerResult): boolean;
/**
 * Support for implementing an automation server.
 */
export declare abstract class AbstractAutomationServer implements AutomationServer {
    abstract automations: Automations;
    invokeCommand(payload: CommandInvocation, ctx: HandlerContext): Promise<HandlerResult>;
    onEvent(payload: EventFired<any>, ctx: HandlerContext): Promise<HandlerResult[]>;
    validateCommandInvocation(payload: CommandInvocation): CommandHandlerMetadata;
    protected abstract invokeCommandHandler(payload: CommandInvocation, h: CommandHandlerMetadata, ctx: HandlerContext): Promise<HandlerResult>;
    protected abstract invokeEventHandler(payload: EventFired<any>, h: EventHandlerMetadata, ctx: HandlerContext): Promise<HandlerResult>;
}
//# sourceMappingURL=AbstractAutomationServer.d.ts.map