import '../../../assert/js/assert.js';
import '../../../globals.js';
/**
 * A Property that, if there is a unique path from one Node to another (A => root => B, or A => B, or B => A), will
 * contain the transformation matrix from A to B's coordinate frame (local coordinate frames by default).
 *
 * If there is no unique path, the value will be null.
 *
 * @author Jonathan Olson <jonathan.olson@colorado.edu>
 */
import TinyProperty from '../../../axon/js/TinyProperty.js';
import Matrix3 from '../../../dot/js/Matrix3.js';
import { Node } from '../imports.js';
type CoordinateFrame = 'parent' | 'local';
export type MatrixBetweenPropertyOptions = {
    fromCoordinateFrame?: CoordinateFrame;
    toCoordinateFrame?: CoordinateFrame;
};
export default class MatrixBetweenProperty extends TinyProperty<Matrix3 | null> {
    readonly from: Node;
    readonly to: Node;
    private readonly fromAncestorsProperty;
    private readonly toAncestorsProperty;
    private rootNode;
    private fromTrail;
    private toTrail;
    private readonly fromCoordinateFrame;
    private readonly toCoordinateFrame;
    private readonly listenedNodeSet;
    private readonly _nodeTransformListener;
    constructor(from: Node, to: Node, providedOptions?: MatrixBetweenPropertyOptions);
    private update;
    private updateMatrix;
    private addNodeListener;
    private removeNodeListener;
    dispose(): void;
}
export {};
//# sourceMappingURL=MatrixBetweenProperty.d.ts.map