import { EventBus } from "./EventBus";
export interface BaseEvent {
}
export declare class EventSignal<E extends BaseEvent> {
    private _eventBus;
    private readonly _eventType;
    constructor(bus: EventBus, eventName: string);
    subscribe<T extends ((event: E) => void)>(callback: T): T;
    subscribeOnce(callback: ((event: E) => void)): (() => void);
    unsubscribe(callback: ((event: E) => void)): void;
}
