import { mat3, vec2 } from 'gl-matrix'; import { SpaceMappingInterface } from './types'; export declare class InverseSpaceMappingDecorator implements SpaceMappingInterface { private readonly mapping; constructor(mapping: SpaceMappingInterface); toFirstPoint(out: vec2, point: Readonly): vec2; fromFirstPoint(out: vec2, point: Readonly): vec2; toFirstVector(out: vec2, vector: Readonly): vec2; fromFirstVector(out: vec2, vector: Readonly): vec2; toSecondPoint(out: vec2, point: Readonly): vec2; fromSecondPoint(out: vec2, point: Readonly): vec2; toSecondVector(out: vec2, vector: Readonly): vec2; fromSecondVector(out: vec2, vector: Readonly): vec2; fromFirstToSecondPoint(out: vec2, point: Readonly): vec2; fromFirstToSecondVector(out: vec2, vector: Readonly): vec2; fromSecondToFirstPoint(out: vec2, point: Readonly): vec2; fromSecondToFirstVector(out: vec2, vector: Readonly): vec2; inverted(): SpaceMappingInterface; } export declare class SpaceMapping implements SpaceMappingInterface { private readonly inverse; private readonly first; private readonly second; private readonly invFirst; private readonly invSecond; private readonly invFirstSecond; private readonly invSecondFirst; constructor(first: Readonly, second: Readonly); toFirstPoint(out: vec2, point: Readonly): vec2; fromFirstPoint(out: vec2, point: Readonly): vec2; toFirstVector(out: vec2, vector: Readonly): vec2; fromFirstVector(out: vec2, vector: Readonly): vec2; toSecondPoint(out: vec2, point: Readonly): vec2; fromSecondPoint(out: vec2, point: Readonly): vec2; toSecondVector(out: vec2, vector: Readonly): vec2; fromSecondVector(out: vec2, vector: Readonly): vec2; fromFirstToSecondPoint(out: vec2, point: Readonly): vec2; fromFirstToSecondVector(out: vec2, vector: Readonly): vec2; fromSecondToFirstPoint(out: vec2, point: Readonly): vec2; fromSecondToFirstVector(out: vec2, vector: Readonly): vec2; inverted(): SpaceMappingInterface; update(first: Readonly, second: Readonly): void; } export declare const between: (first: Readonly, second: Readonly) => SpaceMapping;