import { UnityModel } from "./model";
import { UnityScene } from "./scene";
import { UnityRenderer } from "./renderer";
import { UnityCamera } from "./camera";
import EventEmitter from "../common/event-emitter";
import { Component } from "../interface/component";
import { SocketConfig } from "../common/socket";
import { UnitySocket } from "./socket";
import { PluginCreator } from "../interface/meta";
export type UnityConfig = {
    mode: "client" | "server";
    displayUrl: string | undefined;
    plugins: PluginCreator<unknown, UnityCreator>[];
} & SocketConfig;
export type UnityCreator = {
    readonly container: HTMLElement | undefined;
    readonly unity: UnitySocket;
    renderer: UnityRenderer;
    scene: UnityScene;
    camera: UnityCamera;
    clear: () => Promise<void>;
    render(spaceId?: string, freshMapping?: boolean): Promise<Component<UnityModel>>;
    amount(el: string | HTMLElement): void;
    dispose(): void;
    reset(): Promise<void>;
    readonly component: Component<UnityModel> | undefined;
    readonly model: UnityModel | undefined;
    readonly global: Component<UnityModel> | undefined;
} & EventEmitter;
export declare function createUnityDefaultConfig(): UnityConfig;
/**
 * 连接 unity node
 * @param options
 * @returns
 */
export declare function createUnityConnector(options: UnityConfig): Promise<UnitySocket>;
export declare function unityCreator(config: UnityConfig): Promise<UnityCreator>;
