import { AgoraRteSequenceMessage, AgoraRteSequenceType, AgoraRteSynchronizerObserver } from '../type'; import { AgoraRteSyncSnapshotData } from '../struct'; import { AgoraRteServiceApi } from '../../services/api'; import { Logger, AgoraObservable } from '../../../imports'; export declare class AgoraRteSynchronizer { protected logger: Logger; protected observable: AgoraObservable; private _apiService; private _userId?; private _sceneId; private _snapshot?; private _queueTasks; private _currentTask?; private _lastSeq; private _requestingGap; private _sequenceType; private _running; constructor({ apiService, sceneId, sequenceType, }: { apiService: AgoraRteServiceApi; sceneId: string; sequenceType: AgoraRteSequenceType; }); get sequenceTypeLabel(): "ChannelSequence" | "PeerSequence"; setUserId(userId: string): void; syncSnapshot(snapshot: AgoraRteSyncSnapshotData): void; findSequenceGap(): { seq: number; count: number; queueHeadSeq: number; } | null; sortTasks(): void; addTasks(tasks: AgoraRteSequenceMessage[]): void; prependTasks(tasks: AgoraRteSequenceMessage[]): void; notifyTaskQueueUpdate(): void; runNextTask: () => void; dequeueTask(): AgoraRteSequenceMessage | null | undefined; processTask(task: AgoraRteSequenceMessage): Promise; private _syncSequenceUntilSuccess; syncSequence(count: number): Promise; addObserver(observer: AgoraRteSynchronizerObserver): void; removeObserver(observer: AgoraRteSynchronizerObserver): void; stop(): void; start(): void; }