import type { Metadata, Variant } from "@fishjam-cloud/ts-client";
import type { PeerId, RemoteTrack, Track } from "../types/public";
/**
 *
 * @typeParam PeerMetadata Type of metadata set by peer while connecting to a room.
 * @typeParam ServerMetadata Type of metadata set by the server while creating a peer.
 */
export type PeerWithTracks<PeerMetadata, ServerMetadata, T extends Track = Track> = {
    id: PeerId;
    metadata?: Metadata<PeerMetadata, ServerMetadata>;
    tracks: T[];
    cameraTrack?: T;
    microphoneTrack?: T;
    screenShareVideoTrack?: T;
    screenShareAudioTrack?: T;
    customVideoTracks: T[];
    customAudioTracks: T[];
};
/**
 * Hook allows to access id, tracks and metadata of the local and remote peers.
 *
 * @category Connection
 * @group Hooks
 * @typeParam PeerMetadata Type of metadata set by peer while connecting to a room.
 * @typeParam ServerMetadata Type of metadata set by the server while creating a peer.
 */
export declare function usePeers<PeerMetadata = Record<string, unknown>, ServerMetadata = Record<string, unknown>>(): {
    /**
     * The local peer with distinguished tracks (camera, microphone, screen share).
     * Will be null if the local peer is not found.
     */ localPeer: PeerWithTracks<PeerMetadata, ServerMetadata, Track> | null;
    /**
     * Array of remote peers with distinguished tracks (camera, microphone, screen share).
     */ remotePeers: PeerWithTracks<PeerMetadata, ServerMetadata, RemoteTrack>[];
    /**
     * @deprecated Use remotePeers instead
     * Legacy array containing remote peers.
     * This property will be removed in future versions.
     */
    peers: PeerWithTracks<PeerMetadata, ServerMetadata, RemoteTrack>[];
    /**
     * This function allows to set the quality of tracks received from remote peers.
     * @param trackIds The array of the track ids to set the quality for.
     * @param quality The quality to set for the track.
     */
    setReceivedTracksQuality: (trackIds: string[], quality: Variant) => void;
};
//# sourceMappingURL=usePeers.d.ts.map