import EnhancedEventEmitter from '../EnhancedEventEmitter'; import { PeerGroup, PeerResponse, ProducerData, Role, TrackLabel } from '../types/common'; import type { PeerFactory } from '../types/container'; import { MyPeer } from './MyPeer'; import Network from './network'; import Peer from './Peer'; import PeerConsumer from './PeerConsumer'; import PeersStorage from './PeersStorage'; export interface IPeersService { has: (id: Peer['id']) => boolean; get: (id: Peer['id']) => Peer | undefined; remove: (id: Peer['id']) => Promise; all: () => Peer[]; hosts: () => Peer[]; audience: () => Peer[]; reset: () => Promise; load: (role?: Role) => Promise; add: (peerData: PeerResponse, emit: boolean) => Peer; isModerator: (id: Peer['id'] | undefined) => boolean; } export interface CreatePeerParams { id: string; channelIds: string[]; groups: PeerGroup[]; producePermissions: TrackLabel[]; appId: string; producers: ProducerData[]; videoConsumer?: PeerConsumer; audioConsumer?: PeerConsumer; soundLevel?: number; loginDate: Date; uid?: string; appData?: Record; role: Role; } export declare class Peers implements IPeersService { private readonly myPeer; private readonly network; private readonly peerFactory; private readonly clientEventEmitter; private readonly peersStorage; constructor(myPeer: MyPeer, network: Network, peerFactory: PeerFactory, clientEventEmitter: EnhancedEventEmitter, peersStorage: PeersStorage); has(id: Peer['id']): boolean; private set; get(id: Peer['id']): Peer | undefined; private delete; remove(id: Peer['id']): Promise; all(): Peer[]; hosts(): Peer[]; audience(): Peer[]; reset(): Promise; load(role?: Role): Promise; add(peerData: PeerResponse, emit?: boolean): Peer; isModerator(id: Peer['id'] | undefined): boolean; }