import { EventEmitter } from '@d-fischer/typed-event-emitter';
import { EventBinder } from "@d-fischer/typed-event-emitter/lib/EventEmitter";
import TwitchPrivateMessage from "twitch-chat-client/lib/StandardCommands/TwitchPrivateMessage";
import { Config, Command } from "./Config";
export declare class TelnetError extends Error {
    constructor(message: string);
}
export declare class ChannelError extends Error {
    constructor();
}
export default class Twitch2Ma extends EventEmitter {
    private config;
    private telnet;
    private permissionController;
    private twitchClient;
    private chatClient;
    private initializing;
    constructor(config: Config);
    reloadConfig(config: Config): Promise<void>;
    private startTelnet;
    private stopTwitch;
    start(): Promise<boolean>;
    stop(): Promise<void>;
    stopWithError(error: Error): Promise<void>;
    telnetLogin(host: string, user: string, password: string): Promise<void>;
    initTwitch(config?: Config): Promise<void>;
    handleMessage(channel: string, user: string, message: string, rawMessage: TwitchPrivateMessage): Promise<void>;
    sendCommand(instructions: any, channel: string, user: string, rawMessage: TwitchPrivateMessage): Promise<void>;
    sendHelp(channel: string, user: string, helpCommand: string): void;
    getParametersHelp(command: Command): string;
    private handleSACNStatus;
    private handleSACNError;
    protected emit<Args extends any[]>(event: EventBinder<Args>, ...args: Args): void;
    onTelnetConnected: (handler: (host: string, user: string) => any) => import("@d-fischer/typed-event-emitter/lib").Listener;
    onTwitchConnected: (handler: (channel: string) => any) => import("@d-fischer/typed-event-emitter/lib").Listener;
    onError: (handler: (error: Error) => any) => import("@d-fischer/typed-event-emitter/lib").Listener;
    onCommandExecuted: (handler: (channel: string, user: string, chatCommand: string, parameter: string, consoleCommand: string) => any) => import("@d-fischer/typed-event-emitter/lib").Listener;
    onHelpExecuted: (handler: (channel: string, user: string, helpCommand?: string) => any) => import("@d-fischer/typed-event-emitter/lib").Listener;
    onPermissionDenied: (handler: (channel: string, user: string, command: string, reason: string) => any) => import("@d-fischer/typed-event-emitter/lib").Listener;
    onGodMode: (handler: (channel: string, user: string, reason: string) => any) => import("@d-fischer/typed-event-emitter/lib").Listener;
    onNotice: (handler: (message: string) => any) => import("@d-fischer/typed-event-emitter/lib").Listener;
    onConfigReloaded: (handler: () => any) => import("@d-fischer/typed-event-emitter/lib").Listener;
}
//# sourceMappingURL=Twitch2Ma.d.ts.map