import { Color, Texture } from 'three';
import { CommonComponentProps } from '../../../common/types';
import { Vec2 } from '../../../sdk/types/common';
/**
 * Grid props
 * @expand
 */
export type GridProps = CommonComponentProps & {
    plane: 'xz' | 'xy' | 'zy';
    size: Vec2;
    cellSize?: number;
    subDivisions?: number;
    gridOrigin?: Vec2;
    gridScale?: Vec2;
    background?: string | Color | number;
    backgroundOpacity?: number;
    opacity?: number;
    gridColorMajor?: string | number | Color;
    gridColorMinor?: string | number | Color;
    gridLineWidth?: number;
    showAxes?: boolean;
    showAxesLabels?: boolean;
    trimAxesLabels?: boolean;
    axesOffset?: Vec2;
    axesColor?: string | number | Color;
    axesLineWidth?: number;
    axesTickSize?: number;
    originValue?: Vec2;
    radial?: boolean;
    dynamicSegments?: boolean;
    showRulers?: boolean;
    rulerColor?: string | number | Color;
    rulerLineWidth?: number;
    rulerOpacity?: number;
    planeOffset?: number;
    dynamicCellSize?: boolean;
    cellSizeDistanceFactors?: number[][];
    side?: 'front' | 'back' | 'both';
    texture?: Texture;
    textureMix?: number;
    enableProjection?: boolean;
    projectionDistance?: number;
    projectionColor?: string | number | Color;
    projectionResolution?: number;
    projectionRefreshRate?: number;
    onRulerUpdate?: ((coords: Vec2 | null) => void) | null;
};
/**
 * Renders an axis aligned grid plane (xz, xy or zy).
 *
 * @example
 * <Grid plane="xz" size={[1000, 1000]} cellSize={10} />
 *
 * @remarks
 * The Grid component is very flexible and has many different options which allows you
 * to customize both behaviours and appearances. See the storybook linked below for examples.
 *
 * @see [Storybook](/videx-3d/?path=/docs/components-grids-grid--docs)
 *
 * @group Components
 */
export declare const Grid: ({ plane, size, position, gridOrigin, gridScale, cellSize, subDivisions, background, backgroundOpacity, opacity, gridColorMajor, gridColorMinor, gridLineWidth, showAxes, showAxesLabels, trimAxesLabels, axesOffset, axesColor, axesLineWidth, axesTickSize, originValue, radial, dynamicSegments, showRulers, rulerColor, rulerLineWidth, rulerOpacity, planeOffset, dynamicCellSize, cellSizeDistanceFactors, side, onRulerUpdate, texture, textureMix, enableProjection, projectionDistance, projectionColor, projectionResolution, projectionRefreshRate, name, userData, renderOrder, visible, castShadow, receiveShadow, layers, }: GridProps) => import("react/jsx-runtime").JSX.Element;
