import { Event } from '@skyway-sdk/common';
import model from '@skyway-sdk/model';
import { ChannelEvent, RtcRpcApiClient } from '@skyway-sdk/rtc-rpc-api-client';
import { RtcApiConfig } from '../config';
import { EventObserver } from '../domain/eventObserver';
export declare class EventObserverImpl implements EventObserver {
    readonly onEvent: Event<ChannelEvent>;
    private _disposer;
    constructor(appId: string, client: RtcRpcApiClient, channelDto: model.Channel, config: RtcApiConfig);
    dispose(): void;
}
export interface EventFrame {
    version: number;
    event: unknown;
}
/**@internal */
export declare class EventJitterBuffer {
    private presentVersion;
    private onPacketLost;
    private packetLifetime;
    readonly onEvent: Event<unknown>;
    private eventBuffer;
    packetLifeTimer?: any;
    packetLostHappened: boolean;
    constructor(presentVersion: number, onPacketLost: (expectNextVersion: number) => Promise<void>, packetLifetime?: number);
    private get expectNextVersion();
    push(eventFrame: EventFrame): void;
    private handlePacketLifetime;
    private resolveEvents;
}
//# sourceMappingURL=eventObserver.d.ts.map