import { ISnippet } from '@xverse/matrix-shared-types';
import { CSSProperties } from 'react';
import { IInteraction } from 'xverse-components-video-interaction';
export declare const snippet: ISnippet;
export interface IGreenScreenConfig {
    /**
     * @title 【绿幕】是否是普通视频
     * @default false
     * @description 默认为双通道视频，选择是则为普通视频
     */
    isNormalGreenScreen?: boolean;
    /**
     * @title 【绿幕】是否忽略地面检测
     * @default true
     * @description 默认为true
     */
    isIgnoreDepthTest?: boolean;
}
/**
 * @title TV分辨率大小
 */
export interface ITVResolution {
    /**
     * @title 宽度
     * @default 16
     */
    width: number;
    /**
     * @title 高度
     * @default 9
     */
    height: number;
}
/**
 * @componentName TV
 * @title TV
 * @type 3D
 * @contributor 甘晶 钟跃 陈安娜
 * @description 支持 播放在3d场景中视频
 * @hasChildren
 */
export interface ITVProps {
    /**
     * @isBaseInitOption
     */
    componentId: string;
    /**
     * @title TV3D资产（模型）
     * @setter AssetMeshSetterTV
     * @isBaseInitOption
     */
    bomId: string;
    /**
     * @title TV 的源地址
     * @setter VideoSetter;ImageSetter
     * @description 支持视频和图片，如果是图片，则当作贴图展示
     * @isBaseInitOption
     */
    url?: string;
    /**
     * @title 视频封面
     * @setter ImageSetter
     * @description TV的源是视频时，需要配置封面
     * @isBaseInitOption
     */
    posterUrl?: string;
    /**
     * @title 初始播放状态
     * @description true为播放，false为暂停，默认为暂停
     * @default false
     * @isBaseInitOption
     */
    autoPlay?: boolean;
    /**
     * @title 循环播放
     * @default true
     * @isBaseInitOption
     */
    loop?: boolean;
    /**
     * @title 是否只展示首帧图片
     * @default false
     * @description 如果开启，tv配置源地址为视频的时候也会只展示图片，图片源为视频的首帧
     * @notExternal
     * @isBaseInitOption
     */
    isOnlyShowFirstFrame?: boolean;
    /**
     * @title 是否响应点击全屏播放
     * @default false
     * @description 点击就全屏播放，优先级高于点击暂停或播放的逻辑
     * notExternal
     */
    isClickToPlayFull?: boolean;
    /**
     * @title 关闭全屏按钮样式
     * @setter StyleSetter
     */
    fullScreenCloseButtonStyle?: CSSProperties;
    /**
     * @title 支持点击播放/暂停
     * @default false
     */
    canPause?: boolean;
    /**
     * @title 暂停时支持点击播放
     * @default false
     * @description 仅支持暂停时，点击播放；播放时，点击不响应
     * @notExternal
     */
    canPlayWhenPaused?: boolean;
    /**
     * @title 组件销毁时是否销毁场景中的TV
     * @default false
     * @notExternal
     */
    disposeWhenComponentsDispose?: boolean;
    /**
     * @title 视频填充模式
     * @default Cover
     * @notExternal
     * @isBaseInitOption
     */
    fitMode?: 'Fill' | 'Contain' | 'Cover';
    /**
     * @title 交互视频配置
     * @slot VideoInteraction
     * @description 配置时间为秒级别，即1000的整数倍
     * @notExternal
     */
    interactiveTimeQueue?: IInteraction[];
    /**
     * @title 是否静音
     * @default false
     * @isBaseInitOption
     */
    muted?: boolean;
    /**
     * @title 是否单独控制
     * @default false
     * @description 如果声音开启了单独控制，可以在要控制该音频的组件里选中该组件
     * @isBaseInitOption
     */
    isSeparateControlVolume?: boolean;
    /**
     * @title 是否使用自定义控件
     * @description
     * @default false
     * @notExternal
     * @isBaseInitOption
     */
    needCustomControl?: boolean;
    /**
     * @title video容器样式设置
     * @description video父容器宽高等样式设置
     * @setter StyleSetter
     * @notExternal
     */
    videoContainerStyle?: CSSProperties;
    /**
     * @title TV的分辨率大小
     * @notExternal
     * @isBaseInitOption
     */
    resolution?: ITVResolution;
    /**
     * @title 是否是绿幕视频
     * @default false
     * @notExternal
     * @isBaseInitOption
     */
    isGreenScreen?: boolean;
    /**
     * @title 绿幕视频配置
     * @notExternal
     * @isBaseInitOption
     */
    greenScreenConfig?: IGreenScreenConfig;
    /**
     * @title 点击全屏展示的回调
     */
    onShowFullScreen?: () => void;
    /**
     * @title 关闭全屏展示的回调
     */
    onCloseFullScreen?: () => void;
    /**
     * @title 点击 tv 的回调
     */
    onClick?: () => void;
    /**
     * @title 视频播放结束的回调
     */
    onEnd?: () => void;
    /**
     * @title 视频可播放触发的回调
     */
    onCanPlay?: () => void;
    /**
     * @title 视频第一帧触发的回调
     * @notExternal
     */
    onFirstTimeUpdate?: () => void;
}
