import type { ICopy, IToHiccup } from "@thi.ng/api";
import type { ReadonlyVec, Vec } from "@thi.ng/vectors";
import { ANode } from "./anode.js";
import type { CommonNodeOpts, ISceneNode } from "./api.js";
export interface Node3DOpts extends CommonNodeOpts<Node3D> {
    translate?: Vec;
    rotate?: Vec;
    scale?: Vec | number;
}
export declare class Node3D extends ANode<Node3D> implements ICopy<Node3D>, ISceneNode<Node3D>, IToHiccup {
    translate: Vec;
    rotate: Vec;
    scale: Vec | number;
    constructor(opts: Node3DOpts);
    copy(): Node3D;
    update(): void;
    mapGlobalPoint(p: ReadonlyVec): Vec<number> | undefined;
    mapLocalPointToGlobal(p: ReadonlyVec): Vec<number> | undefined;
    mapLocalPointToNode(dest: Node3D, p: ReadonlyVec): Vec<number> | undefined;
    scaleWithReferencePoint(ref: ReadonlyVec, scale: ReadonlyVec | number): this;
    /**
     * Future support planned. No immediate users of this method in a 3D context
     * available thus far.
     *
     * @param ctx - arbitrary user data
     */
    toHiccup(ctx?: any): any;
}
//# sourceMappingURL=node3.d.ts.map