import { ResolvedValues } from "../../types";
import { DOMVisualElementOptions, HTMLMutableState, TransformOrigin } from "../types";
import { MotionProps } from "../../../motion/types";
import { BoxDelta, Point2D } from "../../../types/geometry";
import { LayoutState } from "../../utils/state";
/**
 * Build a CSS transform style from individual x/y/scale etc properties.
 *
 * This outputs with a default order of transforms/scales/rotations, this can be customised by
 * providing a transformTemplate function.
 */
export declare function buildTransform({ transform, transformKeys }: HTMLMutableState, { enableHardwareAcceleration, allowTransformNone, }: DOMVisualElementOptions, transformIsDefault: boolean, transformTemplate?: MotionProps["transformTemplate"]): string;
/**
 * Build a transformOrigin style. Uses the same defaults as the browser for
 * undefined origins.
 */
export declare function buildTransformOrigin({ originX, originY, originZ, }: TransformOrigin): string;
/**
 * Build a transform style that takes a calculated delta between the element's current
 * space on screen and projects it into the desired space.
 */
export declare function buildLayoutProjectionTransform({ x, y }: BoxDelta, treeScale: Point2D, latestTransform?: ResolvedValues): string;
/**
 * Take the calculated delta origin and apply it as a transform string.
 */
export declare function buildLayoutProjectionTransformOrigin({ deltaFinal, }: LayoutState): string;
export declare const identityProjection: string;
