import { ElementRef } from '@angular/core';
import { NgtEuler, NgtObject3D, NgtQuaternion, NgtVector3 } from 'angular-three';
import { Object3D } from 'three';
import { NgtrRigidBody } from './rigid-body';
import { NgtrRigidBodyOptions, NgtrRigidBodyType } from './types';
import * as i0 from "@angular/core";
export interface NgtrInstancedRigidBodyOptions {
    key: string | number;
    type?: NgtrRigidBodyType;
    position?: NgtVector3;
    rotation?: NgtEuler;
    scale?: NgtVector3;
    quaternion?: NgtQuaternion;
    userData?: NgtObject3D['userData'];
    options?: NgtrRigidBodyOptions;
}
export declare class NgtrInstancedRigidBodies {
    position: import("@angular/core").InputSignal<NgtVector3 | undefined>;
    rotation: import("@angular/core").InputSignal<NgtEuler | undefined>;
    scale: import("@angular/core").InputSignal<NgtVector3 | undefined>;
    quaternion: import("@angular/core").InputSignal<NgtQuaternion | undefined>;
    userData: import("@angular/core").InputSignal<Record<string, any> | undefined>;
    instances: import("@angular/core").InputSignalWithTransform<NgtrInstancedRigidBodyOptions[], "" | NgtrInstancedRigidBodyOptions[]>;
    options: import("@angular/core").InputSignalWithTransform<NgtrRigidBodyOptions, "" | Partial<NgtrRigidBodyOptions>>;
    private object3DParameters;
    private instanceWrapperRef;
    rigidBodyRefs: import("@angular/core").Signal<readonly NgtrRigidBody[]>;
    private physics;
    objectRef: ElementRef<Object3D<import("three").Object3DEventMap>>;
    private colliders;
    private instancedMesh;
    protected instancesOptions: import("@angular/core").Signal<(Omit<NgtrInstancedRigidBodyOptions, "options"> & {
        options: Partial<NgtrRigidBodyOptions>;
    })[]>;
    protected childColliderOptions: import("@angular/core").Signal<{
        colliderOptions: import("angular-three-rapier").NgtrColliderOptions;
        args: unknown[];
        shape: import("angular-three-rapier").NgtrColliderShape;
        rotation: NgtEuler;
        position: NgtVector3;
        scale: NgtVector3;
    }[]>;
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<NgtrInstancedRigidBodies, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgtrInstancedRigidBodies, "ngt-object3D[ngtrInstancedRigidBodies]", ["instancedRigidBodies"], { "position": { "alias": "position"; "required": false; "isSignal": true; }; "rotation": { "alias": "rotation"; "required": false; "isSignal": true; }; "scale": { "alias": "scale"; "required": false; "isSignal": true; }; "quaternion": { "alias": "quaternion"; "required": false; "isSignal": true; }; "userData": { "alias": "userData"; "required": false; "isSignal": true; }; "instances": { "alias": "ngtrInstancedRigidBodies"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[data-colliders]"], true, never>;
}
