import { Group, Object3D } from "three";
import ILoaded from "../../interface/ILoaded";
import { PhysicsOptions } from "../../interface/IPhysicsObjectManager";
import { StandardMesh } from "./mixins/TexturedStandardMixin";
import PhysicsObjectManager from "./PhysicsObjectManager";
export default abstract class Loaded<T = Object3D> extends PhysicsObjectManager<StandardMesh> implements ILoaded {
    $loadedGroup: Group;
    $loadedObject3d?: Object3D;
    constructor();
    protected disposeNode(): void;
    abstract $load(src: string): Promise<T>;
    abstract $resolveLoaded(data: T, src: string): Group;
    protected _src?: string;
    get src(): string | undefined;
    set src(val: string | undefined);
    private _onLoad?;
    get onLoad(): (() => void) | undefined;
    set onLoad(cb: (() => void) | undefined);
    protected widthSet?: boolean;
    get width(): number;
    set width(val: number);
    protected heightSet?: boolean;
    get height(): number;
    set height(val: number);
    protected depthSet?: boolean;
    get depth(): number;
    set depth(val: number);
    get innerRotationX(): number;
    set innerRotationX(val: number);
    get innerRotationY(): number;
    set innerRotationY(val: number);
    get innerRotationZ(): number;
    set innerRotationZ(val: number);
    get innerX(): number;
    set innerX(val: number);
    get innerY(): number;
    set innerY(val: number);
    get innerZ(): number;
    set innerZ(val: number);
    get innerVisible(): boolean;
    set innerVisible(val: boolean);
    get boxVisible(): boolean;
    set boxVisible(val: boolean);
    $getPxShape(mode: PhysicsOptions, actor: any): any;
}
