/// <reference types="node" />
import OT, { Device } from '@opentok/client';
import { EventEmitter } from 'events';
import { VideoFilter } from '../utils/types';
declare interface PreviewPublisher {
    on(event: 'audioLevelUpdated', listener: (audioLevel: number) => void): this;
    on(event: 'created', listener: () => void): this;
    on(event: 'destroyed', listener: () => void): this;
    on(event: 'accessAllowed', listener: () => void): this;
    on(event: 'accessDenied', listener: () => void): this;
    on(event: 'accessDialogOpened', listener: () => void): this;
    on(event: 'accessDialogClosed', listener: (reason: string) => void): this;
}
declare class PreviewPublisher extends EventEmitter {
    private _defaultTargetElement;
    isVideoEnabled: () => boolean;
    isAudioEnabled: () => boolean;
    enableVideo: () => void;
    disableVideo: () => void;
    enableAudio: () => void;
    disableAudio: () => void;
    getVideoDevice: () => Device;
    setVideoDevice: (deviceId: string) => Promise<void>;
    getAudioDevice: () => Promise<Device>;
    setAudioDevice: (deviceId: string) => Promise<void>;
    destroy: () => void;
    previewMedia: (publisherOptions: {
        targetElement?: HTMLElement | string;
        publisherProperties?: OT.PublisherProperties;
    }) => Promise<void>;
    setVideoFilter: (videoFilter: VideoFilter) => Promise<void>;
    clearVideoFilter: () => Promise<void>;
    setDisabledImageURI: (imageURI: string) => void;
    constructor(defaultTargetElement: HTMLElement | string);
}
export default PreviewPublisher;
