import { Group } from "three";
import Loaded from "./core/Loaded";
import IModel from "../interface/IModel";
import FoundManager from "./core/FoundManager";
import AnimationManager from "./core/AnimatedObjectManager/AnimationManager";
export default class Model extends Loaded<Group> implements IModel {
    static componentName: string;
    static defaults: Partial<import("../interface/utils/Defaults").default<IModel>>;
    static schema: Required<import("../interface/utils/extractProps").ExtractProps<IModel>>;
    serializeAnimations?: Record<string, string>;
    loadAnimation(url: string, name?: string): Promise<void>;
    get animations(): Record<string, AnimationManager>;
    set animations(val: Record<string, string | AnimationManager>);
    $load(url: string): Promise<Group>;
    private _resize?;
    get resize(): boolean;
    set resize(val: boolean);
    $resolveLoaded(loadedObject3d: Group, src: string): Group;
    protected disposeNode(): void;
    private _metalnessFactor?;
    get metalnessFactor(): number | undefined;
    set metalnessFactor(val: number | undefined);
    private _roughnessFactor?;
    get roughnessFactor(): number | undefined;
    set roughnessFactor(val: number | undefined);
    private _opacityFactor?;
    get opacityFactor(): number | undefined;
    set opacityFactor(val: number | undefined);
    private _envFactor?;
    get envFactor(): number | undefined;
    set envFactor(val: number | undefined);
    private _reflection?;
    get reflection(): boolean;
    set reflection(val: boolean);
    find(name: string): FoundManager | undefined;
    private _findFirst;
    findFirst(name: string | ((childName: string) => boolean)): FoundManager | undefined;
    findFirstMesh(name: string | ((childName: string) => boolean)): FoundManager | undefined;
    private _findAll;
    findAll(name?: string | ((childName: string) => boolean)): FoundManager[];
    findAllMeshes(name?: string | ((childName: string) => boolean)): FoundManager[];
    private initRenderCheck?;
    get isRendered(): boolean;
}
