///
import * as react from 'react';
import { JSX, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes } from 'react';
import { MeshProps, Vector3, Euler, Color, Props as Props$2 } from '@react-three/fiber';
import * as framer_motion from 'framer-motion';
import { AnimationLifecycles, AnimationProps, TapHandlers, HoverHandlers, MotionValue } from 'framer-motion';
interface ThreeMotionProps extends AnimationLifecycles, AnimationProps, TapHandlers, HoverHandlers {
onInstanceUpdate?: MeshProps["onUpdate"];
}
/**
* @public
*/
type ForwardRefComponent = ForwardRefExoticComponent & RefAttributes>;
type MotionValueOrNumber = number | MotionValue;
type MotionValueVector3 = [
MotionValueOrNumber,
MotionValueOrNumber,
MotionValueOrNumber
];
type AcceptMotionValues = Omit & {
position?: Vector3 | MotionValueVector3 | MotionValueOrNumber;
scale?: Vector3 | MotionValueVector3 | MotionValueOrNumber;
rotation?: Euler | MotionValueVector3 | MotionValueOrNumber;
color?: Color | MotionValue;
};
/**
* Motion-optimised versions of React's HTML components.
*
* @public
*/
type ThreeMotionComponents = {
[K in keyof JSX.IntrinsicElements]: ForwardRefComponent, "onUpdate" | "transition">>;
};
declare function custom(Component: string): react.ForwardRefExoticComponent>;
/**
* @deprecated Motion 3D is deprecated.
*/
declare const motion: typeof custom & ThreeMotionComponents;
interface MotionCanvasProps extends Omit {
}
/**
* @deprecated Motion 3D is deprecated.
*/
declare const MotionCanvas: react.ForwardRefExoticComponent>;
interface LayoutCameraProps {
makeDefault?: boolean;
manual?: boolean;
children?: React.ReactNode;
}
type Props$1 = JSX.IntrinsicElements["perspectiveCamera"] & LayoutCameraProps & ThreeMotionProps;
/**
* Adapted from https://github.com/pmndrs/drei/blob/master/src/core/PerspectiveCamera.tsx
*
* @deprecated Motion 3D is deprecated.
*/
declare const LayoutCamera: react.ForwardRefExoticComponent & react.RefAttributes>;
type Props = JSX.IntrinsicElements["orthographicCamera"] & LayoutCameraProps & ThreeMotionProps;
/**
* @deprecated Motion 3D is deprecated.
*/
declare const LayoutOrthographicCamera: react.ForwardRefExoticComponent & react.RefAttributes>;
/**
* @deprecated Motion 3D is deprecated.
*/
declare function useTime(): framer_motion.MotionValue;
export { LayoutCamera, LayoutOrthographicCamera, MotionCanvas, type MotionCanvasProps, motion, useTime };