import { ComponentSchema } from '@subscan/widget-core';
import { IOperation } from '../operations/type';
export declare type EventNames = {
    operation: IOperation;
    redo: undefined;
    undo: undefined;
    componentsRefresh: ComponentSchema[];
    stateRefresh: undefined;
    componentsChange: ComponentSchema[];
    selectComponent: string;
    HTMLElementsUpdated: undefined;
    MaskWrapperScrollCapture: undefined;
};
export declare const initEventBus: () => {
    on: {
        <Key extends keyof EventNames>(type: Key, handler: import("mitt").Handler<EventNames[Key]>): void;
        (type: "*", handler: import("mitt").WildcardHandler<EventNames>): void;
    };
    off: {
        <Key_1 extends keyof EventNames>(type: Key_1, handler?: import("mitt").Handler<EventNames[Key_1]> | undefined): void;
        (type: "*", handler: import("mitt").WildcardHandler<EventNames>): void;
    };
    send: {
        <Key_2 extends keyof EventNames>(type: Key_2, event: EventNames[Key_2]): void;
        <Key_3 extends keyof EventNames>(type: undefined extends EventNames[Key_3] ? Key_3 : never): void;
    };
};
export declare type EventBusType = ReturnType<typeof initEventBus>;
