import Client from "../../client";
import Chan, { Channel } from "../../models/chan";
import Network, { NetworkWithIrcFramework } from "../../models/network";
import { PackageInfo } from "../packages";
export declare type PluginInputHandler = (this: Client, network: NetworkWithIrcFramework, chan: Channel, cmd: string, args: string[]) => void;
declare type Plugin = {
    commands: string[];
    input: (network: Network, chan: Chan, cmd: string, args: string[]) => void;
    allowDisconnected?: boolean | undefined;
};
declare const _default: {
    addPluginCommand: (packageInfo: PackageInfo, command: any, func: any) => void;
    getCommands: () => string[];
    pluginCommands: Map<any, any>;
    userInputs: Map<string, Plugin>;
};
export default _default;
