import { Configuration } from "../../../configuration";
import { AutomationContextAware, HandlerContext } from "../../../HandlerContext";
import { AutomationEventListener } from "../../../server/AutomationEventListener";
import { AutomationServer } from "../../../server/AutomationServer";
import { GraphClient } from "../../../spi/graph/GraphClient";
import { MessageClient } from "../../../spi/message/MessageClient";
import { AbstractRequestProcessor } from "../AbstractRequestProcessor";
import { CommandIncoming, EventIncoming } from "../RequestProcessor";
import { RegistrationConfirmation } from "../websocket/WebSocketRequestProcessor";
/**
 * A RequestProcessor that is being run as Node.JS Cluster worker handling all the actual work.
 */
export declare class ClusterWorkerRequestProcessor extends AbstractRequestProcessor {
    private readonly _automations;
    private readonly _configuration;
    private readonly _listeners;
    private graphClients;
    private registration?;
    private shutdownInitiated;
    constructor(_automations: AutomationServer, _configuration: Configuration, _listeners?: AutomationEventListener[]);
    setRegistration(registration: RegistrationConfirmation): void;
    setRegistrationIfRequired(data: any): void;
    sendShutdown(code: number, ctx: HandlerContext & AutomationContextAware): Promise<void>;
    protected sendStatusMessage(payload: any, ctx: HandlerContext & AutomationContextAware): Promise<any>;
    protected createGraphClient(event: CommandIncoming | EventIncoming, context: AutomationContextAware): GraphClient;
    protected createMessageClient(event: EventIncoming | CommandIncoming, context: AutomationContextAware): MessageClient;
    protected setupNamespace(request: any, automations: AutomationServer, invocationId?: string, ts?: number): any;
}
/**
 * Start a new worker node
 * @param {AutomationServer} automations
 * @param {WebSocketClientOptions} options
 * @returns {RequestProcessor}
 */
export declare function startWorker(automations: AutomationServer, configuration: Configuration, listeners?: AutomationEventListener[]): ClusterWorkerRequestProcessor;
//# sourceMappingURL=ClusterWorkerRequestProcessor.d.ts.map