import { LitElement, PropertyValueMap } from 'lit';
import { TemplateInstance } from '@vouchfor/canvas-video';
import { MediaPlayer, MediaPlayerProps } from '@vouchfor/media-player';
import { Vouch } from '@vouchfor/video-utils';
import { Environment } from '../../utils/env';

type PlayerEmbedProps = Pick<MediaPlayerProps, 'aspectRatio' | 'language' | 'preload' | 'autoplay' | 'controls'> & {
    data?: Vouch;
    env: Environment;
    apiKey: string;
    disableTracking?: boolean;
    trackingSource?: string;
    vouchId?: string;
    templateId?: string;
    questions?: number[];
};
declare class PlayerEmbed extends LitElement {
    static styles: import('lit').CSSResult[];
    data: PlayerEmbedProps['data'];
    vouchId: PlayerEmbedProps['vouchId'];
    templateId: PlayerEmbedProps['templateId'];
    questions: PlayerEmbedProps['questions'];
    env: PlayerEmbedProps['env'];
    apiKey: PlayerEmbedProps['apiKey'];
    disableTracking: PlayerEmbedProps['disableTracking'];
    trackingSource: PlayerEmbedProps['trackingSource'];
    controls: PlayerEmbedProps['controls'];
    preload: PlayerEmbedProps['preload'];
    autoplay: PlayerEmbedProps['autoplay'];
    aspectRatio: PlayerEmbedProps['aspectRatio'];
    language?: MediaPlayerProps['language'];
    private eventController;
    private _fetcherController;
    private _trackingController;
    vouch: PlayerEmbedProps['data'];
    template: TemplateInstance | undefined;
    get fetching(): boolean;
    private _mediaPlayerRef;
    get waiting(): boolean | undefined;
    get initialised(): Promise<boolean> | undefined;
    get seeking(): boolean | undefined;
    get paused(): boolean | undefined;
    get captions(): boolean | undefined;
    get fullscreen(): boolean | undefined;
    get duration(): number | undefined;
    set currentTime(value: number);
    get currentTime(): number;
    set playbackRate(value: number);
    get playbackRate(): number;
    set volume(value: number);
    get volume(): number;
    set muted(value: boolean);
    get muted(): boolean;
    get mediaState(): import('@vouchfor/media-player').MediaStateMap | undefined;
    get mediaPlayer(): MediaPlayer | undefined;
    play(): void;
    pause(): void;
    reset(time?: number, play?: boolean): void;
    private _renderStyles;
    protected willUpdate(changedProperties: PropertyValueMap<PlayerEmbedProps>): void;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'vouch-embed-player': PlayerEmbed;
    }
    namespace JSX {
        interface IntrinsicElements {
            'vouch-embed-player': PlayerEmbed;
        }
    }
}
export { PlayerEmbed };
export type { PlayerEmbedProps };
