import EventProcessor from "../../../core/internal/event/EventProcessor"; import UserEvent from "../../../core/internal/event/UserEvent"; import { SessionManager } from "../../../core/internal/session/SessionManager"; import { UserManager } from "../../../core/internal/user/UserManager"; import { Lifecycle } from "../../../core/internal/lifecycle/Lifecycle"; import { LifecycleChangeListener } from "../../../core/internal/lifecycle/LifecycleChangeListener"; import { UserEventDedupDeterminer } from "../dedup/UserEventDedupDeterminer"; import { UserEventDecorator } from "../../../core/internal/user/UserEventDecorator"; import { OptOutListener } from "../../../core/internal/optout/OptOutListener"; export default class BrowserEventProcessor implements EventProcessor, LifecycleChangeListener, OptOutListener { private readonly delegate; private readonly eventDedupDeterminer; private readonly sessionManager; private readonly userManager; private decorators; constructor(delegate: EventProcessor, eventDedupDeterminer: UserEventDedupDeterminer, sessionManager: SessionManager, userManager: UserManager); addDecorator(decorator: UserEventDecorator): void; process(event: UserEvent): void; flush(sync: boolean): void; close(): void; onOptOutChanged(optOut: boolean): void; onLifecycleChanged(lifecycle: Lifecycle, _: number): void; }