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 Node2DOpts extends CommonNodeOpts<Node2D> {
    translate?: Vec;
    rotate?: number;
    scale?: Vec | number;
}
export declare class Node2D extends ANode<Node2D> implements ICopy<Node2D>, ISceneNode<Node2D>, IToHiccup {
    translate: Vec;
    rotate: number;
    scale: Vec | number;
    constructor(opts: Node2DOpts);
    copy(): Node2D;
    update(): void;
    mapGlobalPoint(p: ReadonlyVec): Vec<number>;
    mapLocalPointToGlobal(p: ReadonlyVec): Vec<number>;
    mapLocalPointToNode(dest: Node2D, p: ReadonlyVec): Vec<number>;
    scaleWithReferencePoint(ref: ReadonlyVec, scale: ReadonlyVec | number): this;
    /**
     * By implementing this method (`IToHiccup` interface), scene graph nodes
     * can be directly used by hdom-canvas, hiccup-canvas, rdom-canvas or
     * hiccup-svg (for the latter one needs to call `convertTree()` first).
     *
     * @param ctx - arbitrary user data
     */
    toHiccup(ctx?: any): any;
}
//# sourceMappingURL=node2.d.ts.map