import { ColorRamp } from '../../core/ColorRamp';
import { RgbaColor } from '../../utils';
/**
 * Type as returned by the `.pickAt()` method
 */
type WindPickAt = {
    /**
     * Wind speed in m/s (meters per second)
     */
    speedMetersPerSecond: number;
    /**
     * Wind speed in km/h (kilometer per second)
     */
    speedKilometersPerHour: number;
    /**
     * Wind speed in mph (miles per hour)
     */
    speedMilesPerHour: number;
    /**
     * Wind speed in ft/s (feet per second)
     */
    speedFeetPerSecond: number;
    /**
     * Wind speed in knots (nautical miles per hour)
     */
    speedKnots: number;
    /**
     * Angular direction in dregree towards which the wind is blowing, with:
     * - `0°`: true north
     * - `90°`: east
     * - `180°`: south
     * - `270°`: west
     */
    directionAngle: number;
    /**
     * Conventionnaly, wind direction is refered as where the wind comes from.
     * For instance a north wind is a wind coming from the north.
     * This property retrieves one of the 16 compass direction.
     */
    compassDirection: string;
};
type WindLayerOptions = {
    /**
     * ID of the layer
     */
    id?: string;
    /**
     * Quantity of particles to be created. Default value is `128`.
     * Has to be a power of 2 and at least `4`.
     * The actual exact number will be `particles * particles`.
     * Try to keep this value as low as possible to optimize performance.
     *
     * The number of actually visible particles is determined by {@link density}.
     */
    maxAmount?: number;
    /**
     * Color of the particle. RGBA 0-255. Defaults to `[255, 255, 255, 192]`
     */
    color?: RgbaColor;
    /**
     * Color of the particle when moving "fast". RGBA 0-255. Defaults to {@link color}
     */
    fastColor?: RgbaColor;
    /**
     * What is considered "fast" (in px/sec) for coloring purposes.
     * Only makes sense when {@link fastColor} is used.
     */
    fastSpeed?: number;
    /**
     * Number of particles visible per 1000 px^2. Default is `2`.
     */
    density?: number;
    /**
     * Use more pixels to make particles more smooth (especially when tilted).
     * Defaults to `2` for normal displays and `1` for HiDPI displays.
     */
    pixelRatio?: number;
    /**
     * Size of the particle. Defaults to `1.5`
     */
    size?: number;
    /**
     * Speed factor of the particles. Defaults to `0.001`
     */
    speed?: number;
    /**
     * Time interval (in milliseconds) how often the particles
     * are refreshed to avoid degradation.
     * Random `1/16` of the particles is always randomly reset.
     * Default value is `800`.
     */
    refreshInterval?: number;
    /**
     * How much the particles fade over time.
     * Default value is `0.1`.
     */
    fadeFactor?: number;
    /**
     * Opacity of the layer in [0, 1]
     */
    opacity?: number;
    /**
     * Colormap to use
     */
    colorramp?: ColorRamp;
    /**
     * Whether or not the colorramp shows interpolated colors
     */
    smooth?: boolean;
    /**
     * If this is `true`, the particles gets slighly larger as they become faster.
     * Default: `false`
     */
    fastIsLarger?: boolean;
};
export type { WindPickAt, WindLayerOptions };
