import type { TernSecureUser } from "@tern-secure/types"; import type { IdTokenResult } from "firebase/auth"; export declare const events: { readonly UserChanged: "user:userChanged"; readonly UserSignOut: "user:userSignOut"; readonly SessionChanged: "session:sessionChanged"; readonly TokenRefreshed: "token:tokenRefreshed"; }; type TokenUpdatePayload = { token: IdTokenResult | null; }; type InternalEvents = { [events.UserChanged]: TernSecureUser | null; [events.UserSignOut]: null; [events.SessionChanged]: null; [events.TokenRefreshed]: TokenUpdatePayload; }; export declare const eventBus: { on: (event: Event, handler: (payload: InternalEvents[Event]) => void, opts?: { notify?: boolean; }) => void; emit: (event: Event, payload: InternalEvents[Event]) => void; off: (event: Event, handler?: ((payload: InternalEvents[Event]) => void) | undefined) => void; getListeners: (event: Event) => Array<(...args: any[]) => void>; }; export {}; //# sourceMappingURL=events.d.ts.map