import { Skeleton } from './Skeleton';
import { Simulator } from './Simulator';
import { AssetsJSON, PorjectSchema } from './types';
import { IConfig, ISetterConfig } from './config';
import { Emitter } from './emitter';
import { Project } from './models';
import { Assets } from './Assets';
import { Service } from './Service';
/**
 * 引擎实例化参数对象
 */
export interface EngineOptions {
    config?: IConfig;
    assets?: AssetsJSON | (() => Promise<AssetsJSON>);
    project?: PorjectSchema;
    service?: Service;
}
/**
 * 引擎类
 */
export declare class Engine {
    config: IConfig;
    private app;
    skeleton: Skeleton;
    emitter: Emitter;
    simulator: Simulator;
    assets: Assets;
    project: Project;
    service: Service;
    static registerSetters(setters: ISetterConfig[]): void;
    constructor(options: EngineOptions, el?: any);
    mount(el: Element): void;
    dispose(): void;
    private loadProject;
    private bindListeners;
}
