import { type StyleProp, type ViewStyle } from 'react-native';
import { type CurrentShortVideoInfo, type ShortVideoSourcePayload } from './NativeTuiplayer';
import type { ShortVideoSource, ShortVideoOverlayMeta, TuiplayerLicenseConfig, TuiplayerVodStrategyOptions, TuiplayerLiveStrategyOptions, TuiplayerLayerConfig } from './types';
export declare const initialize: (config: TuiplayerLicenseConfig) => void;
type VodPlayerTargetOptions = {
    index?: number;
};
type VodSwitchResolutionOptions = VodPlayerTargetOptions & {
    target?: number;
};
export type VodPlayerSupportResolution = Readonly<{
    index: number;
    width: number;
    height: number;
    bitrate: number;
}>;
export type TuiplayerVodPlayerHandle = {
    startPlay: (source: ShortVideoSource, options?: VodPlayerTargetOptions) => Promise<void>;
    resume: (options?: VodPlayerTargetOptions) => Promise<void>;
    pause: (options?: VodPlayerTargetOptions) => Promise<void>;
    stop: (options?: VodPlayerTargetOptions & {
        clearLastImage?: boolean;
    }) => Promise<void>;
    seekTo: (time: number, options?: VodPlayerTargetOptions) => Promise<void>;
    isPlaying: (options?: VodPlayerTargetOptions) => Promise<boolean>;
    setLoop: (loop: boolean, options?: VodPlayerTargetOptions) => Promise<void>;
    isLoop: (options?: VodPlayerTargetOptions) => Promise<boolean>;
    setRate: (rate: number, options?: VodPlayerTargetOptions) => Promise<void>;
    getDuration: (options?: VodPlayerTargetOptions) => Promise<number>;
    getCurrentPlaybackTime: (options?: VodPlayerTargetOptions) => Promise<number>;
    getPlayableDuration: (options?: VodPlayerTargetOptions) => Promise<number>;
    setMute: (mute: boolean, options?: VodPlayerTargetOptions) => Promise<void>;
    setAudioPlayoutVolume: (volume: number, options?: VodPlayerTargetOptions) => Promise<void>;
    setMirror: (mirror: boolean, options?: VodPlayerTargetOptions) => Promise<void>;
    setBitrateIndex: (index: number, options?: VodPlayerTargetOptions) => Promise<void>;
    getBitrateIndex: (options?: VodPlayerTargetOptions) => Promise<number>;
    getSupportResolution: (options?: VodPlayerTargetOptions) => Promise<VodPlayerSupportResolution[]>;
    setRenderRotation: (rotation: number, options?: VodPlayerTargetOptions) => Promise<void>;
    setRenderMode: (mode: number, options?: VodPlayerTargetOptions) => Promise<void>;
    getWidth: (options?: VodPlayerTargetOptions) => Promise<number>;
    getHeight: (options?: VodPlayerTargetOptions) => Promise<number>;
    switchResolution: (resolution: number, options?: VodSwitchResolutionOptions & VodPlayerTargetOptions) => Promise<boolean | void>;
    setAudioNormalization: (value: number, options?: VodPlayerTargetOptions) => Promise<void>;
    enableHardwareDecode: (enable: boolean, options?: VodPlayerTargetOptions) => Promise<boolean | void>;
};
/**
 * TUIVideoConst.ListPlayMode 对应的播放模式常量。
 */
export declare const TuiplayerListPlayMode: Readonly<Record<string, number>>;
/**
 * TUIConstants.TUIResolutionType 对应的分辨率切换目标常量。
 */
export declare const TuiplayerResolutionType: Readonly<Record<string, number>>;
export type TuiplayerShortVideoViewHandle = {
    /**
     * 跳转到指定索引，`smooth` 为 true 时启用平滑滚动。
     */
    startPlayIndex: (index: number, smooth?: boolean) => void;
    /**
     * 更新短视频播放模式。
     */
    setPlayMode: (mode: number) => void;
    /**
     * 立即释放原生资源。
     */
    release: () => void;
    /**
     * 续播当前视频。
     */
    resume: () => void;
    /**
     * 切换当前或全局的首选分辨率。
     */
    switchResolution: (resolution: number, target: number) => void;
    /**
     * 暂停正在进行的预加载任务。
     */
    pausePreload: () => void;
    /**
     * 从当前索引恢复预加载任务。
     */
    resumePreload: () => void;
    /**
     * 运行时启用或禁用用户滑动手势。
     */
    setUserInputEnabled: (enabled: boolean) => void;
    /**
     * 在页面切换等场景下同步播放状态，避免黑屏或意外恢复播放。
     */
    syncPlaybackState: () => void;
    /**
     * 更新指定索引的视频元信息（点赞、评论数等）。
     */
    updateMeta: (index: number, meta: ShortVideoOverlayMeta) => void;
    /**
     * 获取当前正在播放的短视频信息。
     */
    getCurrentSource: () => Promise<CurrentShortVideoInfo | null>;
    /**
     * 获取当前列表内的数据条数。
     */
    getDataCount: () => Promise<number>;
    /**
     * 按索引获取列表中的数据快照。
     */
    getDataByIndex: (index: number) => Promise<ShortVideoSourcePayload | null>;
    /**
     * 移除指定位置的数据。
     */
    removeData: (index: number) => Promise<void>;
    /**
     * 移除一段区间的数据。
     */
    removeRangeData: (index: number, count: number) => Promise<void>;
    /**
     * 按索引集合批量移除数据。
     */
    removeDataByIndexes: (indexes: number[]) => Promise<void>;
    /**
     * 在指定位置插入一条数据。
     */
    addData: (source: ShortVideoSource, index?: number) => Promise<void>;
    /**
     * 在指定位置插入一组数据。
     */
    addRangeData: (sources: ShortVideoSource[], startIndex?: number) => Promise<void>;
    /**
     * 替换指定位置的数据。
     */
    replaceData: (source: ShortVideoSource, index: number) => Promise<void>;
    /**
     * 替换指定区间的数据。
     */
    replaceRangeData: (sources: ShortVideoSource[], startIndex: number) => Promise<void>;
    /**
     * VOD 播放器控制接口。
     */
    vodPlayer: TuiplayerVodPlayerHandle;
};
export type TuiplayerShortVideoViewProps = {
    sources: ShortVideoSource[];
    autoPlay?: boolean;
    style?: StyleProp<ViewStyle>;
    initialIndex?: number;
    paused?: boolean;
    /**
     * 播放模式常量，默认使用 MODE_ONE_LOOP。
     */
    playMode?: number;
    /**
     * 是否允许用户滑动，默认允许。
     */
    userInputEnabled?: boolean;
    /**
     * 自定义滚动速度（每英寸毫秒）。
     */
    pageScrollMsPerInch?: number;
    /**
     * 需要挂载的原生图层类名集合。
     */
    layers?: TuiplayerLayerConfig;
    vodStrategy?: TuiplayerVodStrategyOptions;
    liveStrategy?: TuiplayerLiveStrategyOptions;
    onPageChanged?: (event: {
        nativeEvent: {
            index: number;
            total: number;
        };
    }) => void;
    onEndReached?: (event: {
        nativeEvent: {
            index: number;
            total: number;
        };
    }) => void;
    onVodEvent?: (event: {
        nativeEvent: {
            type: string;
            payload?: Record<string, unknown>;
        };
    }) => void;
    onReady?: () => void;
};
export declare const TuiplayerShortVideoView: import("react").ForwardRefExoticComponent<TuiplayerShortVideoViewProps & import("react").RefAttributes<TuiplayerShortVideoViewHandle>>;
export type { ShortVideoSource, ShortVideoOverlayMeta, TuiplayerLicenseConfig, TuiplayerVodStrategyOptions, TuiplayerLiveStrategyOptions, TuiplayerLayerConfig, ShortVideoSourceSnapshot, CurrentShortVideoInfo, } from './types';
//# sourceMappingURL=index.d.ts.map