import { AudioConst } from "../../../data/const/TypeConst";
import { ResCollector } from "../../compment/ResCollector";
import { ILateUpdate } from "../Interface/ILateUpdate";
import { IUpdate } from "../Interface/IUpdate";


/**
 * UI控制器
 */
export interface IUIController extends IUpdate, ILateUpdate {
    /**
     * 初始化结束回调
    */
    OnInited(): void;
    /**
     * 显示，被打开时回调
     * @param intent 上下文
     */
    OnShow(intent?: any): void;

    /**
     * 隐藏，被关闭时回调
     */
    OnHide(isDispose?: boolean): void;
    /**
     * 销毁
    */
    OnDestroy(): void;
    /**
     * off注册事件
    */
    offEvent(): void;

    /**
     * 移除所有定时器
     */
    RemoveTimers(): void;

    /** 按钮点击注册器 */
    RegisterClick(btn: fairygui.GObject, func: Function, audio: AudioConst): void;

    RemoveAllClick(): void;

    /**
    * 增加定时器
    * @param callback 
    * @param delta 单位毫秒ms
    */
    AddTimer(callback: Function, delta: number);

    /**
     * 一次性定时器
     * @param callback 
     * @param delta 
     */
    AddTimerOnce(callback: Function, delta: number);

    /** 打开页面前预加载资源 */
    onCollectRes(resCollector: ResCollector, param: any);

    /** 关闭页面 */
    CloseUI();

    /** 全屏显隐页面切换 */
    OnDisplay(visible: boolean);

    GetThirdPkgs(): string[];
    ThirdPkgs: string[];
}