/// <reference types="node" />
import { Stream, Subscriber as OTSubscriber, Session, OTError } from '@opentok/client';
import { EventEmitter } from 'events';
import { Analytics } from '../analytics';
export declare const classes: import("jss").Classes<string>;
declare interface CameraSubscriber {
    on(event: 'audioLevelUpdated', listener: (audioLevel: number, movingAvg: number) => void): this;
    on(event: 'created', listener: () => void): this;
    on(event: 'destroyed', listener: () => void): this;
}
declare class CameraSubscriber extends EventEmitter {
    private _stream;
    private movingAvg;
    id: string;
    setOptimalPreferredResolution: () => void;
    getSubscriberElement: () => HTMLElement | undefined;
    isVideoEnabled: () => boolean;
    isAudioEnabled: () => boolean;
    enableVideo: () => void;
    disableVideo: () => void;
    enableAudio: () => void;
    disableAudio: () => void;
    setDisabledImageURI: (imageURI: string) => void;
    constructor(stream: Stream, otSubscriber: OTSubscriber, analytics: Analytics);
}
export default CameraSubscriber;
export declare const createCameraSubscriber: (session: Session, stream: Stream, shouldEnableVideo: boolean, analytics: Analytics, callback: (error?: OTError, cameraSubscriber?: CameraSubscriber) => void) => void;
