import type { UnsubscribeCallback } from "@excalidraw/excalidraw/types"; export type AppEventPayloadMap = Record; export type AppEventBehavior = { cardinality: "once" | "many"; replay: "none" | "last"; }; export type AppEventBehaviorMap = { [K in keyof Events]: AppEventBehavior; }; type AwaitableAppEventKeys> = { [K in keyof Events]: Behavior[K]["cardinality"] extends "once" ? Behavior[K]["replay"] extends "last" ? K : never : never; }[keyof Events]; type AppEventPromiseValue = Args extends [infer Only] ? Only : Args; export declare class AppEventBus> { private readonly behavior; private readonly emitters; private readonly lastPayload; private readonly emittedOnce; constructor(behavior: Behavior); private getEmitter; private toPromiseValue; on(name: K, callback: (...args: Events[K]) => void): UnsubscribeCallback; on>(name: K): Promise>; emit(name: K, ...args: Events[K]): void; clear(): void; } export {};