/*! * Ecctrl * https://github.com/pmndrs/ecctrl * * SPDX-FileCopyrightText: 2023-2026 Erdong Chen * SPDX-License-Identifier: MIT */ import * as THREE from "three"; import React, { type ReactNode } from "react"; import { type ThreeElements } from "@react-three/fiber"; declare const _default: React.NamedExoticComponent & React.RefAttributes>>; export default _default; export interface PropellerInfoType extends Omit { id: string; thrustPos: THREE.Vector3; thrustDir: THREE.Vector3; thrustPot: THREE.Vector3; torqueDir: THREE.Vector3; torquePot: THREE.Vector3; worldThrustPos: THREE.Vector3; worldThrustDir: THREE.Vector3; worldTorqueDir: THREE.Vector3; thrustImpulse: THREE.Vector3; torqueImpulse: THREE.Vector3; finalThrottle: number; throttle: number; setThrottle?: (value: number) => void; lx: number; ly: number; lz: number; ax: number; ay: number; az: number; } export type ThrustPropellerProps = ThreeElements['group'] & { children?: ReactNode; debug?: boolean; enable?: boolean; name?: string; maxThrust?: number; torqueRatio?: number; invertThrust?: boolean; invertTorque?: boolean; showPropellerModel?: boolean; propellerModelUpdate?: boolean; propellerModelMaxSpin?: number; propellerModelLerpSpinRate?: number; debuggerScale?: number; debuggerArrowScale?: number; };