export default Trail2D;
declare class Trail2D {
    static fromJSON(json: any): Trail2D;
    /**
     * Age at which trail segment disappears, in seconds
     * @type {number}
     */
    maxAge: number;
    /**
     * Trail width
     * @type {number}
     */
    width: number;
    /**
     * Current simulated time since trail birth
     * @type {number}
     */
    time: number;
    /**
     *
     * @type {number}
     */
    trailingIndex: number;
    /**
     * Time elapsed since last update
     * @type {number}
     */
    timeSinceLastUpdate: number;
    /**
     * @readonly
     * @type {Vector4}
     */
    readonly color: Vector4;
    /**
     * World offset
     * @readonly
     * @type {Vector3}
     */
    readonly offset: Vector3;
    /**
     * transient
     * @type {RibbonX|null}
     */
    ribbon: RibbonX | null;
    /**
     * transient
     * @type {RibbonXMaterialSpec}
     */
    material: RibbonXMaterialSpec;
    /**
     * @readonly
     * @type {BvhClient}
     */
    readonly bvh: BvhClient;
    /**
     * @private
     * @type {Trail2DFlags|number}
     */
    private flags;
    dispose(): void;
    set textureURL(v: string);
    get textureURL(): string;
    /**
     *
     * @param {number|Trail2DFlags} flag
     * @returns {void}
     */
    setFlag(flag: number | Trail2DFlags): void;
    /**
     *
     * @param {number|Trail2DFlags} flag
     * @returns {void}
     */
    clearFlag(flag: number | Trail2DFlags): void;
    /**
     *
     * @param {number|Trail2DFlags} flag
     * @param {boolean} value
     */
    writeFlag(flag: number | Trail2DFlags, value: boolean): void;
    /**
     *
     * @param {number|Trail2DFlags} flag
     * @returns {boolean}
     */
    getFlag(flag: number | Trail2DFlags): boolean;
    /**
     *
     * @param {number} segment_count
     */
    build(segment_count: number): void;
    mesh: import("three").Mesh<import("three").BufferGeometry, import("three").Material | import("three").Material[]>;
    fromJSON({ maxAge, width, textureURL, offset, color }: {
        maxAge?: number;
        width?: number;
        textureURL: any;
        offset?: Vector3;
        color?: {
            x: number;
            y: number;
            z: number;
            w: number;
        };
    }): void;
    toJSON(): {
        maxAge: number;
        width: number;
        color: {
            x: number;
            y: number;
            z: number;
            w: number;
        };
        textureURL: string;
        offset: {
            x: number;
            y: number;
            z: number;
        };
    };
    /**
     *
     * @param {Trail2D} other
     */
    equals(other: Trail2D): boolean;
    /**
     *
     * @param {number} x
     * @param {number} y
     * @param {number} z
     * @param {number} head_age
     * @returns {boolean}
     */
    updateHead(x: number, y: number, z: number, head_age: number): boolean;
}
declare namespace Trail2D {
    export let typeName: string;
    export let serializable: boolean;
    export { makeGradientTrail };
}
import Vector4 from "../../../../core/geom/Vector4.js";
import Vector3 from "../../../../core/geom/Vector3.js";
import { RibbonX } from "../../trail/x/RibbonX.js";
import { RibbonXMaterialSpec } from "../../trail/x/RibbonXMaterialSpec.js";
import { BvhClient } from "../../../../core/bvh2/bvh3/BvhClient.js";
import { Trail2DFlags } from "./Trail2DFlags.js";
import { makeGradientTrail } from "./makeGradientTrail.js";
//# sourceMappingURL=Trail2D.d.ts.map