import { Application } from '@meta-ui/core';
import { Operations } from './operations/Operations';
export declare const SelectComponentEvent = "selectComponent";
export declare const HoverComponentEvent = "hoverComponent";
export declare const eventBus: {
    on: {
        <Key extends "selectComponent" | "hoverComponent" | "operation" | "undo" | "appChange">(type: Key, handler: import("mitt").Handler<{
            operation: Operations;
            undo: undefined;
            appChange: Application;
            selectComponent: string;
            hoverComponent: string;
        }[Key]>): void;
        (type: "*", handler: import("mitt").WildcardHandler<{
            operation: Operations;
            undo: undefined;
            appChange: Application;
            selectComponent: string;
            hoverComponent: string;
        }>): void;
    };
    off: {
        <Key_1 extends "selectComponent" | "hoverComponent" | "operation" | "undo" | "appChange">(type: Key_1, handler?: import("mitt").Handler<{
            operation: Operations;
            undo: undefined;
            appChange: Application;
            selectComponent: string;
            hoverComponent: string;
        }[Key_1]> | undefined): void;
        (type: "*", handler: import("mitt").WildcardHandler<{
            operation: Operations;
            undo: undefined;
            appChange: Application;
            selectComponent: string;
            hoverComponent: string;
        }>): void;
    };
    send: {
        <Key_2 extends "selectComponent" | "hoverComponent" | "operation" | "undo" | "appChange">(type: Key_2, event: {
            operation: Operations;
            undo: undefined;
            appChange: Application;
            selectComponent: string;
            hoverComponent: string;
        }[Key_2]): void;
        <Key_3 extends "selectComponent" | "hoverComponent" | "operation" | "undo" | "appChange">(type: undefined extends {
            operation: Operations;
            undo: undefined;
            appChange: Application;
            selectComponent: string;
            hoverComponent: string;
        }[Key_3] ? Key_3 : never): void;
    };
};
