= {
readonly $$typeof: symbol;
} & ((props: PropsWithoutRef & RefAttributes) => JSX.Element);
/**
* Support for React component props
*/
type UnwrapFactoryAttributes = F extends DetailedHTMLFactory ? P : never;
type UnwrapFactoryElement = F extends DetailedHTMLFactory ? P : never;
type HTMLAttributesWithoutMotionProps, Element extends HTMLElement> = {
[K in Exclude]?: Attributes[K];
};
/**
* @public
*/
type HTMLMotionProps = HTMLAttributesWithoutMotionProps, UnwrapFactoryElement> & MotionProps;
/**
* Motion-optimised versions of React's HTML components.
*
* @public
*/
type HTMLMotionComponents = {
[K in HTMLElements]: ForwardRefComponent, HTMLMotionProps>;
};
interface SVGAttributesWithoutMotionProps extends Pick, Exclude, keyof MotionProps>> {
}
/**
* Blanket-accept any SVG attribute as a `MotionValue`
* @public
*/
type SVGAttributesAsMotionValues = MakeMotion>;
type UnwrapSVGFactoryElement = F extends React.SVGProps ? P : never;
/**
* @public
*/
interface SVGMotionProps extends SVGAttributesAsMotionValues, MotionProps {
}
/**
* Motion-optimised versions of React's SVG components.
*
* @public
*/
type SVGMotionComponents = {
[K in SVGElements]: ForwardRefComponent, SVGMotionProps>>;
};
interface ScrollOptions {
source?: HTMLElement;
container?: HTMLElement;
target?: Element;
axis?: "x" | "y";
offset?: ScrollOffset;
}
type SupportedEdgeUnit = "px" | "vw" | "vh" | "%";
type EdgeUnit = `${number}${SupportedEdgeUnit}`;
type NamedEdges = "start" | "end" | "center";
type EdgeString = NamedEdges | EdgeUnit | `${number}`;
type Edge = EdgeString | number;
type ProgressIntersection = [number, number];
type Intersection = `${Edge} ${Edge}`;
type ScrollOffset = Array;
declare class ScrollTimeline implements ProgressTimeline {
constructor(options: ScrollOptions);
currentTime: null | {
value: number;
};
cancel?: VoidFunction;
}
declare global {
interface Window {
ScrollTimeline: ScrollTimeline;
}
}
type Process = (data: FrameData) => void;
type Schedule = (process: Process, keepAlive?: boolean, immediate?: boolean) => Process;
type StepId = "read" | "resolveKeyframes" | "update" | "preRender" | "render" | "postRender";
type Batcher = {
[key in StepId]: Schedule;
};
interface FrameData {
delta: number;
timestamp: number;
isProcessing: boolean;
}
declare const optimizedAppearDataAttribute: "data-framer-appear-id";
/**
* Expose only the needed part of the VisualElement interface to
* ensure React types don't end up in the generic DOM bundle.
*/
interface WithAppearProps {
props: {
[optimizedAppearDataAttribute]?: string;
values?: {
[key: string]: MotionValue | MotionValue;
};
};
}
type HandoffFunction = (storeId: string, valueName: string, frame: Batcher) => number | null;
/**
* The window global object acts as a bridge between our inline script
* triggering the optimized appear animations, and Framer Motion.
*/
declare global {
interface Window {
MotionHandoffAnimation?: HandoffFunction;
MotionHandoffMarkAsComplete?: (elementId: string) => void;
MotionHandoffIsComplete?: (elementId: string) => boolean;
MotionHasOptimisedAnimation?: (elementId?: string, valueName?: string) => boolean;
MotionCancelOptimisedAnimation?: (elementId?: string, valueName?: string, frame?: Batcher, canResume?: boolean) => void;
MotionCheckAppearSync?: (visualElement: WithAppearProps, valueName: string, value: MotionValue) => VoidFunction | void;
MotionIsMounted?: boolean;
}
}
type DOMMotionComponents = HTMLMotionComponents & SVGMotionComponents;
declare const createMotionComponent: (Component: string | TagName | React$1.ForwardRefExoticComponent, { forwardMotionProps }?: {
forwardMotionProps: boolean;
}) => TagName extends "symbol" | "object" | "map" | "filter" | "stop" | "clipPath" | "mask" | "marker" | "a" | "b" | "var" | "style" | "animate" | "progress" | "text" | "ruby" | "table" | "small" | "embed" | "sub" | "path" | "image" | "button" | "meter" | "textarea" | "circle" | "pre" | "caption" | "menu" | "menuitem" | "article" | "dialog" | "figure" | "form" | "img" | "link" | "main" | "option" | "switch" | "time" | "div" | "abbr" | "address" | "area" | "aside" | "audio" | "base" | "bdi" | "bdo" | "blockquote" | "body" | "br" | "canvas" | "cite" | "code" | "col" | "colgroup" | "data" | "datalist" | "dd" | "del" | "details" | "dfn" | "dl" | "dt" | "em" | "fieldset" | "figcaption" | "footer" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "head" | "header" | "hgroup" | "hr" | "html" | "i" | "iframe" | "input" | "ins" | "kbd" | "label" | "legend" | "li" | "mark" | "meta" | "nav" | "noscript" | "ol" | "optgroup" | "output" | "p" | "picture" | "q" | "rp" | "rt" | "s" | "samp" | "script" | "section" | "select" | "source" | "span" | "strong" | "summary" | "sup" | "tbody" | "td" | "tfoot" | "th" | "thead" | "title" | "tr" | "track" | "u" | "ul" | "video" | "wbr" | "big" | "defs" | "desc" | "ellipse" | "feBlend" | "feColorMatrix" | "feComponentTransfer" | "feComposite" | "feConvolveMatrix" | "feDiffuseLighting" | "feDisplacementMap" | "feDistantLight" | "feDropShadow" | "feFlood" | "feFuncA" | "feFuncB" | "feFuncG" | "feFuncR" | "feGaussianBlur" | "feImage" | "feMerge" | "feMergeNode" | "feMorphology" | "feOffset" | "fePointLight" | "feSpecularLighting" | "feSpotLight" | "feTile" | "feTurbulence" | "foreignObject" | "g" | "line" | "linearGradient" | "metadata" | "pattern" | "polygon" | "polyline" | "radialGradient" | "rect" | "svg" | "textPath" | "tspan" | "use" | "view" | "keygen" | "param" | "webview" ? DOMMotionComponents[TagName] : React$1.ForwardRefExoticComponent>>;
/**
* HTML components
*/
declare const MotionA: ForwardRefComponent>;
declare const MotionAbbr: ForwardRefComponent>;
declare const MotionAddress: ForwardRefComponent>;
declare const MotionArea: ForwardRefComponent>;
declare const MotionArticle: ForwardRefComponent>;
declare const MotionAside: ForwardRefComponent>;
declare const MotionAudio: ForwardRefComponent>;
declare const MotionB: ForwardRefComponent>;
declare const MotionBase: ForwardRefComponent>;
declare const MotionBdi: ForwardRefComponent>;
declare const MotionBdo: ForwardRefComponent>;
declare const MotionBig: ForwardRefComponent>;
declare const MotionBlockquote: ForwardRefComponent>;
declare const MotionBody: ForwardRefComponent>;
declare const MotionButton: ForwardRefComponent>;
declare const MotionCanvas: ForwardRefComponent>;
declare const MotionCaption: ForwardRefComponent>;
declare const MotionCite: ForwardRefComponent>;
declare const MotionCode: ForwardRefComponent>;
declare const MotionCol: ForwardRefComponent>;
declare const MotionColgroup: ForwardRefComponent>;
declare const MotionData: ForwardRefComponent>;
declare const MotionDatalist: ForwardRefComponent>;
declare const MotionDd: ForwardRefComponent>;
declare const MotionDel: ForwardRefComponent>;
declare const MotionDetails: ForwardRefComponent>;
declare const MotionDfn: ForwardRefComponent>;
declare const MotionDialog: ForwardRefComponent>;
declare const MotionDiv: ForwardRefComponent>;
declare const MotionDl: ForwardRefComponent>;
declare const MotionDt: ForwardRefComponent>;
declare const MotionEm: ForwardRefComponent>;
declare const MotionEmbed: ForwardRefComponent>;
declare const MotionFieldset: ForwardRefComponent>;
declare const MotionFigcaption: ForwardRefComponent>;
declare const MotionFigure: ForwardRefComponent>;
declare const MotionFooter: ForwardRefComponent>;
declare const MotionForm: ForwardRefComponent>;
declare const MotionH1: ForwardRefComponent>;
declare const MotionH2: ForwardRefComponent>;
declare const MotionH3: ForwardRefComponent>;
declare const MotionH4: ForwardRefComponent>;
declare const MotionH5: ForwardRefComponent>;
declare const MotionH6: ForwardRefComponent>;
declare const MotionHead: ForwardRefComponent>;
declare const MotionHeader: ForwardRefComponent>;
declare const MotionHgroup: ForwardRefComponent>;
declare const MotionHr: ForwardRefComponent>;
declare const MotionHtml: ForwardRefComponent>;
declare const MotionI: ForwardRefComponent>;
declare const MotionIframe: ForwardRefComponent>;
declare const MotionImg: ForwardRefComponent>;
declare const MotionInput: ForwardRefComponent>;
declare const MotionIns: ForwardRefComponent>;
declare const MotionKbd: ForwardRefComponent>;
declare const MotionKeygen: ForwardRefComponent>;
declare const MotionLabel: ForwardRefComponent>;
declare const MotionLegend: ForwardRefComponent>;
declare const MotionLi: ForwardRefComponent>;
declare const MotionLink: ForwardRefComponent>;
declare const MotionMain: ForwardRefComponent>;
declare const MotionMap: ForwardRefComponent>;
declare const MotionMark: ForwardRefComponent>;
declare const MotionMenu: ForwardRefComponent>;
declare const MotionMenuitem: ForwardRefComponent>;
declare const MotionMeter: ForwardRefComponent>;
declare const MotionNav: ForwardRefComponent>;
declare const MotionObject: ForwardRefComponent>;
declare const MotionOl: ForwardRefComponent>;
declare const MotionOptgroup: ForwardRefComponent>;
declare const MotionOption: ForwardRefComponent>;
declare const MotionOutput: ForwardRefComponent>;
declare const MotionP: ForwardRefComponent>;
declare const MotionParam: ForwardRefComponent>;
declare const MotionPicture: ForwardRefComponent>;
declare const MotionPre: ForwardRefComponent>;
declare const MotionProgress: ForwardRefComponent>;
declare const MotionQ: ForwardRefComponent>;
declare const MotionRp: ForwardRefComponent>;
declare const MotionRt: ForwardRefComponent>;
declare const MotionRuby: ForwardRefComponent>;
declare const MotionS: ForwardRefComponent>;
declare const MotionSamp: ForwardRefComponent>;
declare const MotionScript: ForwardRefComponent>;
declare const MotionSection: ForwardRefComponent>;
declare const MotionSelect: ForwardRefComponent>;
declare const MotionSmall: ForwardRefComponent>;
declare const MotionSource: ForwardRefComponent>;
declare const MotionSpan: ForwardRefComponent>;
declare const MotionStrong: ForwardRefComponent>;
declare const MotionStyle: ForwardRefComponent>;
declare const MotionSub: ForwardRefComponent>;
declare const MotionSummary: ForwardRefComponent>;
declare const MotionSup: ForwardRefComponent>;
declare const MotionTable: ForwardRefComponent>;
declare const MotionTbody: ForwardRefComponent>;
declare const MotionTd: ForwardRefComponent>;
declare const MotionTextarea: ForwardRefComponent>;
declare const MotionTfoot: ForwardRefComponent>;
declare const MotionTh: ForwardRefComponent>;
declare const MotionThead: ForwardRefComponent>;
declare const MotionTime: ForwardRefComponent>;
declare const MotionTitle: ForwardRefComponent>;
declare const MotionTr: ForwardRefComponent>;
declare const MotionTrack: ForwardRefComponent>;
declare const MotionU: ForwardRefComponent>;
declare const MotionUl: ForwardRefComponent>;
declare const MotionVideo: ForwardRefComponent>;
declare const MotionWbr: ForwardRefComponent>;
declare const MotionWebview: ForwardRefComponent>;
/**
* SVG components
*/
declare const MotionAnimate: ForwardRefComponent>;
declare const MotionCircle: ForwardRefComponent>;
declare const MotionDefs: ForwardRefComponent>;
declare const MotionDesc: ForwardRefComponent>;
declare const MotionEllipse: ForwardRefComponent>;
declare const MotionG: ForwardRefComponent>;
declare const MotionImage: ForwardRefComponent>;
declare const MotionLine: ForwardRefComponent>;
declare const MotionFilter: ForwardRefComponent>;
declare const MotionMarker: ForwardRefComponent>;
declare const MotionMask: ForwardRefComponent>;
declare const MotionMetadata: ForwardRefComponent>;
declare const MotionPath: ForwardRefComponent>;
declare const MotionPattern: ForwardRefComponent>;
declare const MotionPolygon: ForwardRefComponent>;
declare const MotionPolyline: ForwardRefComponent>;
declare const MotionRect: ForwardRefComponent>;
declare const MotionStop: ForwardRefComponent>;
declare const MotionSvg: ForwardRefComponent>;
declare const MotionSymbol: ForwardRefComponent>;
declare const MotionText: ForwardRefComponent>;
declare const MotionTspan: ForwardRefComponent>;
declare const MotionUse: ForwardRefComponent>;
declare const MotionView: ForwardRefComponent>;
declare const MotionClipPath: ForwardRefComponent>;
declare const MotionFeBlend: ForwardRefComponent>;
declare const MotionFeColorMatrix: ForwardRefComponent>;
declare const MotionFeComponentTransfer: ForwardRefComponent>;
declare const MotionFeComposite: ForwardRefComponent>;
declare const MotionFeConvolveMatrix: ForwardRefComponent>;
declare const MotionFeDiffuseLighting: ForwardRefComponent>;
declare const MotionFeDisplacementMap: ForwardRefComponent>;
declare const MotionFeDistantLight: ForwardRefComponent>;
declare const MotionFeDropShadow: ForwardRefComponent>;
declare const MotionFeFlood: ForwardRefComponent>;
declare const MotionFeFuncA: ForwardRefComponent>;
declare const MotionFeFuncB: ForwardRefComponent>;
declare const MotionFeFuncG: ForwardRefComponent>;
declare const MotionFeFuncR: ForwardRefComponent>;
declare const MotionFeGaussianBlur: ForwardRefComponent>;
declare const MotionFeImage: ForwardRefComponent>;
declare const MotionFeMerge: ForwardRefComponent>;
declare const MotionFeMergeNode: ForwardRefComponent>;
declare const MotionFeMorphology: ForwardRefComponent>;
declare const MotionFeOffset: ForwardRefComponent>;
declare const MotionFePointLight: ForwardRefComponent>;
declare const MotionFeSpecularLighting: ForwardRefComponent>;
declare const MotionFeSpotLight: ForwardRefComponent>;
declare const MotionFeTile: ForwardRefComponent>;
declare const MotionFeTurbulence: ForwardRefComponent>;
declare const MotionForeignObject: ForwardRefComponent