/** based on framer-motion@4.1.17, Copyright (c) 2018 Framer B.V. */ import { ResolvedValues } from "../types"; import { SVGAttributes } from "react"; import { MakeMotion, MotionProps } from "../../motion/types"; import { SVGElements } from "./supported-elements"; import { ForwardRefComponent, HTMLRenderState } from "../html/types"; export interface SVGRenderState extends HTMLRenderState { /** * Measured dimensions of the SVG element to be used to calculate a transform-origin. */ dimensions?: SVGDimensions; /** * A mutable record of attributes we want to apply directly to the rendered Element * every frame. We use a mutable data structure to reduce GC during animations. */ attrs: ResolvedValues; /** * Measured path length if this is a SVGPathElement */ totalPathLength?: number; } export declare type SVGDimensions = { x: number; y: number; width: number; height: number; }; interface SVGAttributesWithoutMotionProps extends Pick, Exclude, keyof MotionProps>> { } /** * Blanket-accept any SVG attribute as a `MotionValue` * @public */ export declare type SVGAttributesAsMotionValues = MakeMotion>; declare type UnwrapSVGFactoryElement = F extends React.SVGProps ? P : never; /** * @public */ export interface SVGMotionProps extends SVGAttributesAsMotionValues, MotionProps { } /** * Motion-optimised versions of React's SVG components. * * @public */ export declare type SVGMotionComponents = { [K in SVGElements]: ForwardRefComponent, SVGMotionProps>>; }; export {};