import { BufferGeometry, InstancedMesh, Material } from 'three';
import { PointerEvents } from '../../events/interaction-events';
import { SymbolsType } from '../../sdk/data/types/Symbol';
import { CommonComponentProps } from '../common';
/**
 * Symbol props
 * @expand
 */
export type SymbolProps = {
    geometry: BufferGeometry;
    material: Material | Material[];
    data: SymbolsType;
    customDepthMaterial?: Material;
    customDistanceMaterial?: Material;
} & PointerEvents & CommonComponentProps;
/**
 * A generic component used for simplifying mesh instancing. Use this component if you need a large number of
 * meshes sharing the same base geometry and material, but that may be transformed or colored individually.
 *
 * Typical use case is for visualizations of data along a wellbore, such as in the `Shoes` and `Picks` component.
 *
 * @remarks
 * Data, including colors, transformations and user defined data, must be mapped to the `SymbolsType` type.
 *
 * @example
 *  <Symbols
 *    position={position}
 *    data={data}
 *    geometry={geometry}
 *    material={material}
 *    layers={layers}
 *  />
 *
 * @see {@link SymbolsType}
 * @see [InstancedMesh](https://threejs.org/docs/#api/en/objects/InstancedMesh)
 *
 * @group Components
 */
export declare const Symbols: import('react').ForwardRefExoticComponent<{
    geometry: BufferGeometry;
    material: Material | Material[];
    data: SymbolsType;
    customDepthMaterial?: Material;
    customDistanceMaterial?: Material;
} & PointerEvents & CommonComponentProps & import('react').RefAttributes<InstancedMesh<BufferGeometry<import('three').NormalBufferAttributes>, Material | Material[], import('three').InstancedMeshEventMap>>>;
