export declare class RemoteStreamsManager { private readonly participantGroups; private readonly trackToGroup; private readonly trackDisposers; get mainStream(): MediaStream | undefined; reset(): void; addTrack(track: MediaStreamTrack, { onRemoved, streamHint, }?: { streamHint?: string; onRemoved?: ({ trackId, participantId, }: { trackId: string; isRemovedStream: boolean; participantId: string; }) => void; }): { isAddedTrack: true; isAddedStream: boolean; participantId: string; } | { isAddedTrack: false; isAddedStream: false; }; removeTrack(trackId: string): { isRemovedTrack: boolean; isRemovedStream: boolean; }; removeStaleTracks(participantId: string, keepTrackIds: string[]): boolean; getStreams(participantId?: string): MediaStream[]; private disposeTrackListener; private getParticipantGroups; }