import * as THREE from 'three';
import * as CANNON from 'cannon';
import { VectorSpringSimulator } from '../physics/spring_simulation/VectorSpringSimulator';
import { RelativeSpringSimulator } from '../physics/spring_simulation/RelativeSpringSimulator';
import { World } from '../world/World';
import { IWorldEntity } from '../interfaces/IWorldEntity';
import { CapsuleCollider } from '../physics/colliders/CapsuleCollider';
import { EntityType } from '../enums/EntityType';
export declare class Item extends THREE.Object3D implements IWorldEntity {
    updateOrder: number;
    entityType: EntityType;
    height: number;
    tiltContainer: THREE.Group;
    modelContainer: THREE.Group;
    materials: THREE.Material[];
    velocity: THREE.Vector3;
    arcadeVelocityInfluence: THREE.Vector3;
    velocityTarget: THREE.Vector3;
    arcadeVelocityIsAdditive: boolean;
    defaultVelocitySimulatorDamping: number;
    defaultVelocitySimulatorMass: number;
    velocitySimulator: VectorSpringSimulator;
    moveSpeed: number;
    orientation: THREE.Vector3;
    orientationTarget: THREE.Vector3;
    defaultRotationSimulatorDamping: number;
    defaultRotationSimulatorMass: number;
    rotationSimulator: RelativeSpringSimulator;
    viewVector: THREE.Vector3;
    itemBox: CapsuleCollider;
    world: World;
    isPicked: boolean;
    private physicsEnabled;
    private gltf;
    constructor(gltf: any, texture: string);
    setArcadeVelocityInfluence(x: number, y?: number, z?: number): void;
    setViewVector(vector: THREE.Vector3): void;
    setPosition(x: number, y: number, z: number): void;
    resetVelocity(): void;
    setArcadeVelocityTarget(velZ: number, velX?: number, velY?: number): void;
    setOrientation(vector: THREE.Vector3, instantly?: boolean): void;
    setPhysicsEnabled(value: boolean): void;
    readItemData(gltf: any, textureUrl: string): void;
    update(timeStep: number): void;
    physicsPreStep(body: CANNON.Body, character: Item): void;
    physicsPostStep(body: CANNON.Body, character: Item): void;
    addToWorld(world: World): void;
    removeFromWorld(world: World): void;
}
