import { ColorRepresentation, Object3D, Plane, Vector3 } from "three"; import { AnimationConfig, BaseNode } from "../node.js"; import { Vector1 } from "../vector.js"; import { ReactNode } from "react"; import { ContainerState } from "./container.js"; import { InvertOptional } from "./text.js"; import { ExtendedEventHandlers } from "../scroll-handler.js"; import { YogaProperties } from "@coconut-xr/flex"; export type Object3DState = { opacity: Vector1; overwriteDefaultColor: Vector1; color: Vector3; } & Omit; export declare class Object3DNode extends BaseNode { target: Readonly; private group; private object; private depthRatio; private overwrittenDepth; applyClippingPlanes(planes: Plane[] | null): void; linkCurrent(current: Object3DState): void; /** * @param object normalized (width, height, depth = 1, top, left = 0) */ setObject(object: Object3D, depthRatio: number, overwrittenDepth: number | undefined): void; onInit(): void; onLayout(): void; private updateDepth; onUpdate(current: Object3DState): void; onCleanup(): void; } export type BaseObject3DProperties = YogaProperties & { animation?: AnimationConfig; color?: ColorRepresentation; opacity?: number; depth?: number; translateX?: number; translateY?: number; translateZ?: number; scaleX?: number; scaleY?: number; scaleZ?: number; } & Omit; export type Object3DProperties = { object: Object3D; } & BaseObject3DProperties; export declare function useObject(node: Object3DNode, { object: child, color, depth, opacity, animation, translateX, translateY, translateZ, scaleX, scaleY, scaleZ, ...props }: Object3DProperties, children: ReactNode | undefined, setAspectRatio?: boolean): ReactNode | undefined; export type LoadableObjectProperties = { url: string; } & BaseObject3DProperties; export declare const objectDefaults: Omit, keyof YogaProperties | "depth" | "color" | keyof ExtendedEventHandlers>; export declare function useBox(node: Object3DNode, props: BaseObject3DProperties, children: ReactNode | undefined): ReactNode | undefined; export declare function useGLTF(node: Object3DNode, { url, ...props }: LoadableObjectProperties, children: ReactNode | undefined): ReactNode | undefined; export declare function useSVG(node: Object3DNode, { url, ...props }: LoadableObjectProperties, children: ReactNode | undefined): ReactNode | undefined; export declare function useSVGFromText(node: Object3DNode, { text, ...props }: { text: string; } & BaseObject3DProperties, children: ReactNode | undefined): ReactNode | undefined; export declare const GLTF: import("react").ForwardRefExoticComponent & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {} & { index?: number | undefined; id?: string | undefined; children?: string | number | boolean | import("react").ReactElement> | Iterable | import("react").ReactPortal | null | undefined; classes?: Partial<{ url: string; } & YogaProperties & { animation?: AnimationConfig | undefined; color?: ColorRepresentation | undefined; opacity?: number | undefined; depth?: number | undefined; translateX?: number | undefined; translateY?: number | undefined; translateZ?: number | undefined; scaleX?: number | undefined; scaleY?: number | undefined; scaleZ?: number | undefined; } & Omit & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}>[] | undefined; ref?: import("react").MutableRefObject | undefined; }, "ref"> & import("react").RefAttributes>; export declare const RootGLTF: import("react").ForwardRefExoticComponent & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}, "height" | "width"> & { precision?: number | undefined; id?: string | undefined; children?: string | number | boolean | import("react").ReactElement> | Iterable | import("react").ReactPortal | null | undefined; classes?: Partial<{ url: string; } & YogaProperties & { animation?: AnimationConfig | undefined; color?: ColorRepresentation | undefined; opacity?: number | undefined; depth?: number | undefined; translateX?: number | undefined; translateY?: number | undefined; translateZ?: number | undefined; scaleX?: number | undefined; scaleY?: number | undefined; scaleZ?: number | undefined; } & Omit & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}>[] | undefined; loadYoga?: (() => Promise) | undefined; anchorX?: "center" | "left" | "right" | undefined; anchorY?: "center" | "top" | "bottom" | undefined; sizeX?: number | undefined; sizeY?: number | undefined; pixelSize?: number | undefined; position?: import("@react-three/fiber").Vector3 | undefined; rotation?: import("@react-three/fiber").Euler | undefined; dragThreshold?: number | undefined; } & import("react").RefAttributes>; export declare const SVG: import("react").ForwardRefExoticComponent & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {} & { index?: number | undefined; id?: string | undefined; children?: string | number | boolean | import("react").ReactElement> | Iterable | import("react").ReactPortal | null | undefined; classes?: Partial<{ url: string; } & YogaProperties & { animation?: AnimationConfig | undefined; color?: ColorRepresentation | undefined; opacity?: number | undefined; depth?: number | undefined; translateX?: number | undefined; translateY?: number | undefined; translateZ?: number | undefined; scaleX?: number | undefined; scaleY?: number | undefined; scaleZ?: number | undefined; } & Omit & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}>[] | undefined; ref?: import("react").MutableRefObject | undefined; }, "ref"> & import("react").RefAttributes>; export declare const RootSVG: import("react").ForwardRefExoticComponent & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}, "height" | "width"> & { precision?: number | undefined; id?: string | undefined; children?: string | number | boolean | import("react").ReactElement> | Iterable | import("react").ReactPortal | null | undefined; classes?: Partial<{ url: string; } & YogaProperties & { animation?: AnimationConfig | undefined; color?: ColorRepresentation | undefined; opacity?: number | undefined; depth?: number | undefined; translateX?: number | undefined; translateY?: number | undefined; translateZ?: number | undefined; scaleX?: number | undefined; scaleY?: number | undefined; scaleZ?: number | undefined; } & Omit & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}>[] | undefined; loadYoga?: (() => Promise) | undefined; anchorX?: "center" | "left" | "right" | undefined; anchorY?: "center" | "top" | "bottom" | undefined; sizeX?: number | undefined; sizeY?: number | undefined; pixelSize?: number | undefined; position?: import("@react-three/fiber").Vector3 | undefined; rotation?: import("@react-three/fiber").Euler | undefined; dragThreshold?: number | undefined; } & import("react").RefAttributes>; export declare const SVGFromText: import("react").ForwardRefExoticComponent & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {} & { index?: number | undefined; id?: string | undefined; children?: string | number | boolean | import("react").ReactElement> | Iterable | import("react").ReactPortal | null | undefined; classes?: Partial<{ text: string; } & YogaProperties & { animation?: AnimationConfig | undefined; color?: ColorRepresentation | undefined; opacity?: number | undefined; depth?: number | undefined; translateX?: number | undefined; translateY?: number | undefined; translateZ?: number | undefined; scaleX?: number | undefined; scaleY?: number | undefined; scaleZ?: number | undefined; } & Omit & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}>[] | undefined; ref?: import("react").MutableRefObject | undefined; }, "ref"> & import("react").RefAttributes>; export declare const RootSVGFromText: import("react").ForwardRefExoticComponent & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}, "height" | "width"> & { precision?: number | undefined; id?: string | undefined; children?: string | number | boolean | import("react").ReactElement> | Iterable | import("react").ReactPortal | null | undefined; classes?: Partial<{ text: string; } & YogaProperties & { animation?: AnimationConfig | undefined; color?: ColorRepresentation | undefined; opacity?: number | undefined; depth?: number | undefined; translateX?: number | undefined; translateY?: number | undefined; translateZ?: number | undefined; scaleX?: number | undefined; scaleY?: number | undefined; scaleZ?: number | undefined; } & Omit & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}>[] | undefined; loadYoga?: (() => Promise) | undefined; anchorX?: "center" | "left" | "right" | undefined; anchorY?: "center" | "top" | "bottom" | undefined; sizeX?: number | undefined; sizeY?: number | undefined; pixelSize?: number | undefined; position?: import("@react-three/fiber").Vector3 | undefined; rotation?: import("@react-three/fiber").Euler | undefined; dragThreshold?: number | undefined; } & import("react").RefAttributes>; export declare const Box: import("react").ForwardRefExoticComponent & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {} & { index?: number | undefined; id?: string | undefined; children?: string | number | boolean | import("react").ReactElement> | Iterable | import("react").ReactPortal | null | undefined; classes?: Partial & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}>[] | undefined; ref?: import("react").MutableRefObject | undefined; }, "ref"> & import("react").RefAttributes>; export declare const RootBox: import("react").ForwardRefExoticComponent & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}, "height" | "width"> & { precision?: number | undefined; id?: string | undefined; children?: string | number | boolean | import("react").ReactElement> | Iterable | import("react").ReactPortal | null | undefined; classes?: Partial & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}>[] | undefined; loadYoga?: (() => Promise) | undefined; anchorX?: "center" | "left" | "right" | undefined; anchorY?: "center" | "top" | "bottom" | undefined; sizeX?: number | undefined; sizeY?: number | undefined; pixelSize?: number | undefined; position?: import("@react-three/fiber").Vector3 | undefined; rotation?: import("@react-three/fiber").Euler | undefined; dragThreshold?: number | undefined; } & import("react").RefAttributes>; export declare const Object: import("react").ForwardRefExoticComponent & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {} & { index?: number | undefined; id?: string | undefined; children?: string | number | boolean | import("react").ReactElement> | Iterable | import("react").ReactPortal | null | undefined; classes?: Partial<{ object: Object3D; } & YogaProperties & { animation?: AnimationConfig | undefined; color?: ColorRepresentation | undefined; opacity?: number | undefined; depth?: number | undefined; translateX?: number | undefined; translateY?: number | undefined; translateZ?: number | undefined; scaleX?: number | undefined; scaleY?: number | undefined; scaleZ?: number | undefined; } & Omit & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}>[] | undefined; ref?: import("react").MutableRefObject | undefined; }, "ref"> & import("react").RefAttributes>; export declare const RootObject: import("react").ForwardRefExoticComponent & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}, "height" | "width"> & { precision?: number | undefined; id?: string | undefined; children?: string | number | boolean | import("react").ReactElement> | Iterable | import("react").ReactPortal | null | undefined; classes?: Partial<{ object: Object3D; } & YogaProperties & { animation?: AnimationConfig | undefined; color?: ColorRepresentation | undefined; opacity?: number | undefined; depth?: number | undefined; translateX?: number | undefined; translateY?: number | undefined; translateZ?: number | undefined; scaleX?: number | undefined; scaleY?: number | undefined; scaleZ?: number | undefined; } & Omit & { inset?: number | `${number}%` | undefined; border?: number | undefined; borderX?: number | undefined; borderY?: number | undefined; padding?: number | `${number}%` | undefined; paddingX?: number | `${number}%` | undefined; paddingY?: number | `${number}%` | undefined; margin?: number | `${number}%` | "auto" | undefined; marginX?: number | `${number}%` | "auto" | undefined; marginY?: number | `${number}%` | "auto" | undefined; } & {}>[] | undefined; loadYoga?: (() => Promise) | undefined; anchorX?: "center" | "left" | "right" | undefined; anchorY?: "center" | "top" | "bottom" | undefined; sizeX?: number | undefined; sizeY?: number | undefined; pixelSize?: number | undefined; position?: import("@react-three/fiber").Vector3 | undefined; rotation?: import("@react-three/fiber").Euler | undefined; dragThreshold?: number | undefined; } & import("react").RefAttributes>;