import type { Subscription, TopicDescriptor } from '../ricos-types/index.js';
import type { RicosEventData } from './event-data.js';
import type { Event, Subscriber } from './models/event.js';
import type { Topic } from './models/topics.js';
import type { EventLogger } from './ricos-event-logger.js';
export declare class EventInitializationError extends Error {
}
export declare class RicosEvent implements Event<RicosEventData> {
    private readonly topic;
    private static eventId;
    private subscribers;
    private isActive;
    private logger;
    constructor(topicDescriptor: TopicDescriptor, logger: EventLogger);
    subscribe(handler: (topic: TopicDescriptor, data: RicosEventData) => void, subscriberId: string): Subscription;
    private isDuplicateSubscriber;
    publishSync(data: RicosEventData): boolean;
    publish(data: RicosEventData): boolean;
    publishOnce(data: RicosEventData): boolean;
    getTopic(): Topic;
    dispose(): void;
}
export declare class EventSubscriber implements Subscriber<RicosEventData> {
    readonly callback: (topic: TopicDescriptor, data: RicosEventData) => void;
    readonly id: string;
    constructor(callback: (topic: TopicDescriptor, data: RicosEventData) => void, id: string);
    invoke(topic: TopicDescriptor, data: RicosEventData): void;
}
//# sourceMappingURL=ricos-event.d.ts.map