import { MotionValue } from 'framer-motion'; import { SpringProps } from 'popmotion'; import React from 'react'; import { RefObject } from 'react'; declare class HooksStore { hooksKey: number; hooks: ((lastHooks: T[]) => T)[]; addHook(next: (lastHooks: T[]) => T): void; } export declare class AnimationStore { animationHooks: HooksStore>; frozen: boolean; values: any[]; freeze(): void; getValue(): any; transform(transform: (v: any) => T): AnimationStore; transform(from: number[], to?: any[], options?: any): AnimationStore; spring(props: SpringProps | false): this; mergeTransform(values: MotionValue[], callback: (previous: T, ...values: T[]) => T): this; } export declare class GeometryStore { stores: AnimationStore[]; curCall: number; frozen: boolean; props: A & { ref: RefObject; }; beforeRenderChildren(): void; afterRenderChildren(): void; clear(): void; freeze(): void; setupStore(fn: (store: AnimationStore) => void): AnimationStore; useViewportScroll(key: 'x' | 'y' | 'xProgress' | 'yProgress'): AnimationStore; useTransform(value: MotionValue, transform?: (val: T) => T): AnimationStore; scrollProgress(direction: 'x' | 'y'): AnimationStore; scrollIntersection(): AnimationStore; } export declare type GeometryRenderer = (geometry: A, ref: RefObject) => React.ReactNode; export declare function useGeometry(getChildren: GeometryRenderer, GeometryConstructor: { new (...args: any): A; }, geometryProps?: any): JSX.Element; export declare const Geometry: React.MemoExoticComponent<(props: { children: GeometryRenderer; }) => JSX.Element>; export {}; //# sourceMappingURL=Geometry.d.ts.map