import { ColorRepresentation } from 'three/src/math/Color';
export type ImagePlaceholderProps = {
aspect?: number;
height?: number;
position?: [number, number, number];
rotation?: [number, number, number];
color?: ColorRepresentation;
lineWidth?: number;
};
/**
* A wireframe rectangle placeholder, useful for showing image bounds
* while the image is loading.
*/
export declare function ImagePlaceholder({ aspect, height, position, rotation, color, lineWidth, }: ImagePlaceholderProps): import("react/jsx-runtime").JSX.Element;
export type ImageProps = {
_key?: string;
/**
* RGB image source URL or Blob data.
* @dial texture
* @dial-dtype string
*/
rgb?: string | Blob;
/**
* Alpha/mask image source URL or Blob data.
* @dial texture
* @dial-dtype string
*/
alpha?: string | Blob;
/**
* Use linear filtering for smooth texture interpolation.
* Set to false for pixel-perfect rendering.
* @dial texture
* @dial-dtype boolean
*/
interpolate?: boolean;
/**
* Color of the placeholder outline shown while loading.
* @dial placeholder
* @dial-dtype color
*/
placeholderColor?: ColorRepresentation;
/**
* Aspect ratio (width/height) of the image plane.
* If not specified, auto-computed from loaded image dimensions.
* @dial geometry
* @dial-dtype number
* @dial-step 0.01
*/
aspect?: number;
/**
* Height of the image plane in world units.
* Width is computed as height * aspect.
* @dial geometry
* @dial-dtype number
* @dial-step 0.01
*/
height?: number;
/**
* Opacity of the image.
* @dial appearance
* @dial-cols 2
* @dial-dtype number
* @dial-min 0
* @dial-max 1
* @dial-step 0.01
*/
opacity?: number;
/**
* Position of the image plane.
* @dial transform
* @dial-cols 2
* @dial-dtype vector3
*/
position?: [number, number, number];
/**
* Rotation of the image plane.
* @dial transform
* @dial-dtype vector3
*/
rotation?: [number, number, number];
/**
* Which side to render (0=front, 1=back, 2=double).
* @dial appearance
* @dial-dtype int
* @dial-min 0
* @dial-max 2
*/
side?: number;
/**
* Render as wireframe.
* @dial appearance
* @dial-dtype boolean
*/
wireframe?: boolean;
};
/**
* Displays a static image on a plane in 3D space.
*
* Creates a textured plane for displaying images at specific positions and
* orientations in the 3D scene. Unlike ImageBackground, this plane has a
* fixed position in world space and does not follow the camera.
*
* Aspect ratio is auto-computed from image dimensions if not specified.
* Width = height * aspect.
*
* From Python, the `src` parameter is automatically renamed to `rgb` via
* `__post_init__`. Supports URL strings and binary data (numpy arrays and
* PIL Images are converted to binary on the Python side).
*
* @example
* ```tsx
* // Simple image (aspect auto-computed from image)
*
*
* // Specify height, width scales with image aspect
*
*
* // Override aspect ratio (force 16:9)
*
*
* // Image with transparency
*
* ```
*/
export declare function Image({ _key, rgb, alpha, interpolate, placeholderColor, aspect, height, opacity, position, rotation, side, wireframe, }: ImageProps): import("react/jsx-runtime").JSX.Element;