import { 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 renderingState;
    private currentKeyframes;
    private lastRenderedFrameIndex;
    private lastRealtimeProtoFrame;
    private idleAnimationLoopId;
    private realtimeAnimationLoopId;
    private resizeObserver;
    private onWindowResize;
    private frameCount;
    private lastFpsUpdate;
    private currentFPS;
    private transitionKeyframes;
    private transitionStartTime;
    private readonly transitionDurationMs;
    private cachedIdleFirstFrame;
    private idleCurrentFrameIndex;
    private characterHandle;
    private characterId;
    /**
     * 对齐两端 Flame 维度：标量统一长度，expression 取最大长度并零填充
     */
    private alignFlamePair;
    /**
     * 生成并对齐过渡帧，确保首尾帧与起止帧完全一致
     */
    private generateAndAlignTransitionFrames;
    /**
     * 获取缓存的 Idle 首帧，如果未缓存则获取并缓存
     */
    private getCachedIdleFirstFrame;
    /**
     * 构造函数
     * 创建统一的 AvatarController，内部根据配置自动组合网络层
     */
    constructor(avatar: Avatar, options?: AvatarViewOptions);
    /**
     * 获取控制器（公共接口）
     */
    get controller(): AvatarController;
    /**
     * 创建canvas元素
     */
    private createCanvas;
    /**
     * 初始化视图系统
     */
    private initializeView;
    /**
     * 初始化渲染系统
     */
    private initializeRenderSystem;
    /**
     * 获取默认相机配置
     */
    private getDefaultCameraConfig;
    /**
     * 根据资源解析最终的相机配置，优先使用角色设置，其次 camera.json
     */
    private resolveCameraConfig;
    /**
     * 从角色设置中推导相机配置
     */
    private deriveCameraConfigFromSettings;
    /**
     * 渲染第一帧
     */
    private renderFirstFrame;
    /**
     * 更新 FPS 统计（在 requestAnimationFrame 回调中调用）
     */
    private updateFPS;
    /**
     * 初始化 FPS 计算
     */
    private initFPS;
    /**
     * 开始idle动画循环
     */
    private startIdleAnimationLoop;
    /**
     * 开始实时对话动画循环
     */
    private startRealtimeAnimationLoop;
    /**
     * 停止idle动画循环
     */
    private stopIdleAnimationLoop;
    /**
     * 停止实时对话动画循环
     */
    private stopRealtimeAnimationLoop;
    /**
     * 停止所有动画循环
     */
    private stopAllAnimationLoops;
    /**
     * 渲染实时帧（由播放层回调调用）
     */
    private renderRealtimeFrame;
    /**
     * 过渡完成回调（通知播放层启动音频）
     */
    private onTransitionComplete;
    /**
     * 状态转换方法
     * 统一管理状态转换，确保状态一致性
     */
    private setState;
    /**
     * 检查是否在实时播放状态（Speaking 或过渡到 Speaking）
     */
    private get isRealtimePlaying();
    /**
     * 检查是否在过渡中
     */
    private get isTransitioning();
    /**
     * 检查过渡结束后是否回到 Idle
     */
    private get endToIdleAfterTransition();
    /**
     * 处理打断
     * 打断时应该生成过渡动画，而不是直接跳回 Idle
     */
    private handleInterrupt;
    /**
     * 设置 AvatarController 事件监听器
     */
    private setupControllerEventListeners;
    /**
     * 准备实时渲染（生成 Idle -> Speaking 过渡）
     */
    private prepareRealtimeRendering;
    /**
     * 开始实时渲染循环
     */
    private startRealtimeRendering;
    /**
     * 停止实时对话渲染
     */
    private stopRealtimeRendering;
    /**
     * 清理视图资源
     * 关闭 avatarController 并清理所有相关资源
     */
    dispose(): void;
    /**
     * 处理尺寸变化：通知渲染系统更新视口与投影
     */
    private handleResize;
}
//# sourceMappingURL=AvatarView.d.ts.map