import { HNode, Material, Prefab, Vec3 } from '@hiberworld/code-kit';
import { DefaultOptions } from '.';
export interface WheelsSpinningOptions extends DefaultOptions {
    wheelPrefabId: Prefab;
    wheelMaterial?: Material;
    wheelRotation?: Vec3;
    wheelScale?: Vec3;
    wheelOffset?: Vec3;
    wheelObjects?: HNode;
    numWheels?: number;
    wheelDistance?: number;
    direction: number;
    progress: number;
    speedMultiplier: number;
    offset?: Vec3;
}
/**
 * Creates a group of wheels that spin around a central point.
 * @example
 * ```
  // First a container for the car
  let car = getGroup({ p: [0, 2, 5], r: [0, 90, 0] });
  // Then add the car body
  addTo(car, getPrefab({ id: 'cube_01', s: [10, 0.4, 1], material: 't_plank_wall_01' }));
  // Then add the wheels

  const speedMultiplier = 0.75;
  const numWheels = 4;
  const wheelThickness = 10;
  const wheelScale = 4;
  const wheelDistance = 4.5;
  const wheelOffsetZ = 2.0;
  const wheelOffsetX = 6.0;

  let wheelProps: Partial<WheelsSpinningOptions> = {
    p: [wheelOffsetX, 0, wheelOffsetZ * -1],
    speedMultiplier,
    wheelScale: [wheelThickness, wheelScale, wheelScale],
    wheelMaterial: 't_metal_01',
    numWheels,
    wheelDistance,
  };

  addTo(car, getSpinningWheels(wheelProps));
  addTo(car, getSpinningWheels({ ...wheelProps, ...{ p: [wheelOffsetX, 0, wheelOffsetZ * 1] } }));
  const radius = 12;
  const duration = 16;
  car = getOrbiting(car, { radius, duration });
  addTo(world, car);
 * ```
 */
export declare const getSpinningWheels: (options?: Partial<WheelsSpinningOptions>) => HNode;
//# sourceMappingURL=getSpinningWheels.d.ts.map