import { EventEmitter } from 'node:events';
import Config from './config.js';
import { RouterVars } from '@showbridge/types';
import Action from './actions/action.js';
import { Message } from './messages/index.js';
import { CloudProtocol, HTTPProtocol, MIDIProtocol, MQTTProtocol, TCPProtocol, UDPProtocol } from './protocols/index.js';
import Trigger from './triggers/trigger.js';
export type RouterProtocols = {
    http: HTTPProtocol;
    udp: UDPProtocol;
    tcp: TCPProtocol;
    midi: MIDIProtocol;
    mqtt: MQTTProtocol;
    cloud: CloudProtocol;
};
declare class Router extends EventEmitter {
    vars: RouterVars;
    _config: Config;
    protocols: RouterProtocols;
    constructor(config: Config);
    set config(value: Config);
    get config(): Config;
    stop(): void;
    start(): void;
    setLogLevel(logLevel: any): void;
    servePath(filePath: string): void;
    processTrigger(trigger: Trigger<unknown>, triggerPath: string, msg: Message): void;
    processMessage(msg: Message): void;
    runAction(action: Action<unknown>, msg: Message, vars: RouterVars): void;
    stopProtocol(type: string): void;
    reloadProtocol(type: string): void;
    disableAction(type: string): void;
    enableAction(type: string): void;
    disableProtocol(type: string): void;
    enabledProtocol(type: string): void;
    disableTrigger(type: string): void;
    enableTrigger(type: string): void;
    disableTransform(type: string): void;
    enableTransform(type: string): void;
}
export default Router;
