import { type InjectionKey, type Ref } from "vue";
import type { vec } from "../vec";
export interface TransformContextShape {
/**
* The resulting transformation matrix from any user-provided transforms (via
* the `` component).
*/
userTransform: Ref;
/**
* A transformation that maps "math" space to pixel space. Note that, in many
* cases, you don't need to use this transformation directly. Instead, use the
* `var(--mafs-view-transform)` CSS custom property in combination with the
* SVG `transform` prop.
*/
viewTransform: Ref;
}
export declare const transformInjectionKey: InjectionKey;
/**
* A hook that returns the current transformation context. This is useful for
* building custom Mafs components that need to be aware of how to map between
* world space and pixel space, and also need to respond to user-provided
* transformations.
*/
export declare function useTransformContext(): TransformContextShape;