import { Observable, Subject } from 'rxjs';
import { TellyMediaOptions } from './telly-media.options';
import { VideoEvent } from './video-event';
export declare class TellyMedia {
    id: string;
    opts: TellyMediaOptions;
    element: HTMLVideoElement;
    internalEvents$: Subject<string>;
    private nativeEvents$;
    private interval?;
    rateMap: Record<number, number>;
    constructor(id: string, el: HTMLVideoElement, options?: TellyMediaOptions);
    get events(): Observable<Event>;
    private set events(value);
    get messages(): Observable<string>;
    get time(): number;
    set time(time: number);
    get windowTime(): number;
    get totalDuration(): number;
    get duration(): number;
    set duration(val: number);
    get drift(): number;
    set drift(val: number);
    get rate(): number;
    get buffered(): TimeRanges;
    get volume(): number;
    set volume(vol: number);
    get playing(): boolean;
    play(silent?: boolean): void;
    pause(silent?: boolean): void;
    toggle(): void;
    stop(): void;
    seek(second: number): void;
    setRate(rate: number): void;
    faster(): void;
    slower(): void;
    indicate(msg: string): void;
    event(name: VideoEvent | string): Observable<Event>;
    createEventStream(): Observable<Event>;
    storeVolume(vol: number): void;
}
