import type { Application, IApplicationOptions } from "pixi.js";
import type { Live2DModel as Live2DModelType } from "pixi-live2d-display";
import type { HitokotoOptions } from "@tomiaa/hitokoto";
import type { ModelOption } from "./modelList";
/**
 * Live2D 配置选项
 */
export interface Live2dOptions {
    el: any;
    jsBaseURL?: string;
    live2d_2_ModelBaseURL?: string;
    live2d_3_ModelBaseURL?: string;
    loadLive2d_2?: boolean;
    loadLive2d_3?: boolean;
    playLoadingAnimation?: boolean;
    showLoading?: boolean;
    showControl?: boolean;
    iApplicationOptions?: IApplicationOptions;
    maxWidth?: number;
    minWidth?: number;
    aspectRatio?: [number, number];
    beforeInit?: (data: {
        options: Live2dOptions;
        modelList: ModelOption[];
    }) => void;
    afterInit?: (data: {
        options: Live2dOptions;
        modelList: ModelOption[];
        currentModelOption: ModelOption;
        Live2DModel: typeof Live2DModelType;
        app: Application;
    }) => void;
    randomPeople?: boolean;
    allowDrag?: boolean;
    hitokoto?: boolean;
    hitokotoOptions?: HitokotoOptions;
}
/**
 * 全局 Window 类型扩展
 */
declare global {
    interface Window {
        PIXI: typeof import("pixi.js") & {
            live2d: typeof import("pixi-live2d-display");
        };
        LIVE2DCUBISMFRAMEWORK: any;
        Live2DCubismCore: any;
        LIVE2DCUBISMPIXI: any;
    }
}
