import { CameraConfig, RenderPerformanceStats, AvatarViewOptions, AvatarPlaybackMode } from '../types';
import { Avatar } from './Avatar';
import { AvatarController } from './AvatarController';
export declare class AvatarView {
    private readonly avatarController;
    readonly playbackMode: AvatarPlaybackMode;
    private readonly avatar;
    private canvas;
    private renderSystem;
    private isInitialized;
    private cameraConfig;
    private isRealtimePlaying;
    private currentKeyframes;
    private lastRenderedFrameIndex;
    private lastRealtimeProtoFrame;
    private idleResumeIndexPending;
    private idleAnimationLoopId;
    private realtimeAnimationLoopId;
    private resizeObserver;
    private onWindowResize;
    private transitionKeyframes;
    private isTransitioning;
    private transitionStartTime;
    private readonly transitionDurationMs;
    private endToIdleAfterTransition;
    private cachedIdleFirstFrame;
    private idleCurrentFrameIndex;
    /**
     * 对齐两端 Flame 维度：标量统一长度，expression 取最大长度并零填充
     */
    private alignFlamePair;
    /**
     * 判断是否为空 Flame（用于跳过 isLast=true 的哨兵帧）
     */
    private isEmptyFlame;
    /**
     * 生成并对齐过渡帧，确保首尾帧与起止帧完全一致
     */
    private generateAndAlignTransitionFrames;
    /**
     * 获取缓存的 Idle 首帧，如果未缓存则获取并缓存
     */
    private getCachedIdleFirstFrame;
    /**
     * 构造函数
     * 创建统一的 AvatarController，内部根据配置自动组合网络层
     */
    constructor(avatar: Avatar, options?: AvatarViewOptions);
    /**
     * 获取控制器（公共接口）
     */
    get controller(): AvatarController;
    /**
     * 创建canvas元素
     */
    private createCanvas;
    /**
     * 获取canvas元素（供外部访问）
     */
    getCanvas(): HTMLCanvasElement;
    /**
     * 初始化视图系统
     */
    private initializeView;
    /**
     * 初始化渲染系统
     */
    private initializeRenderSystem;
    /**
     * 获取默认相机配置
     */
    private getDefaultCameraConfig;
    /**
     * 根据资源解析最终的相机配置，优先使用角色设置，其次 camera.json
     */
    private resolveCameraConfig;
    /**
     * 从角色设置中推导相机配置
     */
    private deriveCameraConfigFromSettings;
    /**
     * 渲染第一帧
     */
    private renderFirstFrame;
    /**
     * 开始idle动画循环
     */
    private startIdleAnimationLoop;
    /**
     * 开始实时对话动画循环
     */
    private startRealtimeAnimationLoop;
    /**
     * 停止idle动画循环
     */
    private stopIdleAnimationLoop;
    /**
     * 停止实时对话动画循环
     */
    private stopRealtimeAnimationLoop;
    /**
     * 停止所有动画循环
     */
    private stopAllAnimationLoops;
    /**
     * 渲染实时帧（由播放层回调调用）
     */
    private renderRealtimeFrame;
    /**
     * 过渡完成回调（通知播放层启动音频）
     */
    private onTransitionComplete;
    /**
     * 处理打断
     */
    private handleInterrupt;
    /**
     * 设置 AvatarController 事件监听器
     */
    private setupControllerEventListeners;
    /**
     * 准备实时渲染（生成 Idle -> Speaking 过渡）
     */
    private prepareRealtimeRendering;
    /**
     * 开始实时渲染循环
     */
    private startRealtimeRendering;
    /**
     * 停止实时对话渲染
     */
    private stopRealtimeRendering;
    /**
     * 清理视图资源
     * 关闭 avatarController 并清理所有相关资源
     */
    dispose(): void;
    /**
     * 获取相机配置
     */
    getCameraConfig(): CameraConfig | null;
    /**
     * 更新相机配置
     */
    updateCameraConfig(cameraConfig: CameraConfig): void;
    /**
     * 处理尺寸变化：通知渲染系统更新视口与投影
     */
    private handleResize;
    /**
     * 获取渲染性能统计
     * @returns 渲染性能统计数据，如果渲染系统未初始化则返回 null
     */
    getPerformanceStats(): RenderPerformanceStats | null;
}
//# sourceMappingURL=AvatarView.d.ts.map