import type CIMSymbol from "@arcgis/core/symbols/CIMSymbol";
import type ExtrudeSymbol3DLayer from "@arcgis/core/symbols/ExtrudeSymbol3DLayer";
import type FillSymbol3DLayer from "@arcgis/core/symbols/FillSymbol3DLayer";
import type IconSymbol3DLayer from "@arcgis/core/symbols/IconSymbol3DLayer";
import type LabelSymbol3D from "@arcgis/core/symbols/LabelSymbol3D";
import type LineSymbol3D from "@arcgis/core/symbols/LineSymbol3D";
import type LineSymbol3DLayer from "@arcgis/core/symbols/LineSymbol3DLayer";
import type MeshSymbol3D from "@arcgis/core/symbols/MeshSymbol3D";
import type ObjectSymbol3DLayer from "@arcgis/core/symbols/ObjectSymbol3DLayer";
import type PathSymbol3DLayer from "@arcgis/core/symbols/PathSymbol3DLayer";
import type PictureFillSymbol from "@arcgis/core/symbols/PictureFillSymbol";
import type PictureMarkerSymbol from "@arcgis/core/symbols/PictureMarkerSymbol";
import type PointSymbol3D from "@arcgis/core/symbols/PointSymbol3D";
import type PolygonSymbol3D from "@arcgis/core/symbols/PolygonSymbol3D";
import type SimpleFillSymbol from "@arcgis/core/symbols/SimpleFillSymbol";
import type SimpleLineSymbol from "@arcgis/core/symbols/SimpleLineSymbol";
import type SimpleMarkerSymbol from "@arcgis/core/symbols/SimpleMarkerSymbol";
import type Symbol3D from "@arcgis/core/symbols/Symbol3D";
import type TextSymbol from "@arcgis/core/symbols/TextSymbol";
import type WebStyleSymbol from "@arcgis/core/symbols/WebStyleSymbol";
import type { SymbolUnion } from "@arcgis/core/symbols/types.js";
/**
 * Returns whether a symbol is rendered as a 3D object. ESRI's Symbol3D can
 * contain flat or volumetric symbol layers; this function will return true if
 * any of the symbol layers are volumetric.
 *
 * @param symbol The symbol to test for volume.
 */
export declare function isVolumetric(symbol: SymbolUnion | undefined | null): boolean;
/**
 * Is the Symbol an Esri Symbol instance.
 *
 * @param symbol The Symbol.
 */
export declare function isSymbol(symbol: unknown): symbol is SymbolUnion;
/**
 * Is the Symbol of type CIMSymbol.
 *
 * @param symbol The Symbol.
 */
export declare function isCIMSymbol(symbol: unknown): symbol is CIMSymbol;
/**
 * Is the Symbol a CIMSymbol of type CIMPointSymbol.
 *
 * @param symbol The Symbol.
 */
export declare function isCIMPointSymbol(symbol: unknown): symbol is CIMSymbol;
/**
 * Is the Symbol a CIMSymbol of type CIMLineSymbol.
 *
 * @param symbol The Symbol.
 */
export declare function isCIMLineSymbol(symbol: unknown): symbol is CIMSymbol;
/**
 * Is the Symbol a CIMSymbol of type CIMPolygonSymbol.
 *
 * @param symbol The Symbol.
 */
export declare function isCIMPolygonSymbol(symbol: unknown): symbol is CIMSymbol;
/**
 * Is the Symbol of type CIMSymbol.
 *
 * @deprecated Deprecated. Use isCIMSymbol instead.
 * @param symbol The Symbol.
 */
export declare function isCimSymbol(symbol: unknown): symbol is CIMSymbol;
/**
 * Is the Symbol of type LabelSymbol3D.
 *
 * @param symbol The Symbol.
 */
export declare function isLabelSymbol3D(symbol: unknown): symbol is LabelSymbol3D;
/**
 * Is the Symbol of type LineSymbol3D.
 *
 * @param symbol The Symbol.
 */
export declare function isLineSymbol3D(symbol: unknown): symbol is LineSymbol3D;
/**
 * Is the Symbol of type MeshSymbol3D.
 *
 * @param symbol The Symbol.
 */
export declare function isMeshSymbol3D(symbol: unknown): symbol is MeshSymbol3D;
/**
 * Is the Symbol of type PictureFillSymbol.
 *
 * @param symbol The Symbol.
 */
export declare function isPictureFillSymbol(symbol: unknown): symbol is PictureFillSymbol;
/**
 * Is the Symbol of type PictureMarkerSymbol.
 *
 * @param symbol The Symbol.
 */
export declare function isPictureMarkerSymbol(symbol: unknown): symbol is PictureMarkerSymbol;
/**
 * Is the Symbol of type PointSymbol3D.
 *
 * @param symbol The Symbol.
 */
export declare function isPointSymbol3D(symbol: unknown): symbol is PointSymbol3D;
/**
 * Is the Symbol of type PolygonSymbol3D.
 *
 * @param symbol The Symbol.
 */
export declare function isPolygonSymbol3D(symbol: unknown): symbol is PolygonSymbol3D;
/**
 * Is the Symbol of type SimpleFillSymbol.
 *
 * @param symbol The Symbol.
 */
export declare function isSimpleFillSymbol(symbol: unknown): symbol is SimpleFillSymbol;
/**
 * Is the Symbol of type SimpleLineSymbol.
 *
 * @param symbol The Symbol.
 */
export declare function isSimpleLineSymbol(symbol: unknown): symbol is SimpleLineSymbol;
/**
 * Is the Symbol of type SimpleFillSymbol.
 *
 * @param symbol The Symbol.
 */
export declare function isSimpleMarkerSymbol(symbol: unknown): symbol is SimpleMarkerSymbol;
/**
 * Is the Symbol of type WebStyleSymbol.
 *
 * @param symbol The Symbol.
 */
export declare function isWebStyleSymbol(symbol: unknown): symbol is WebStyleSymbol;
/**
 * Is the Symbol of type TextSymbol.
 *
 * @param symbol The Symbol.
 */
export declare function isTextSymbol(symbol: unknown): symbol is TextSymbol;
/**
 * Is the Symbol of type Symbol3D.
 *
 * @param symbol The Symbol.
 */
export declare function isSymbol3D(symbol: unknown): symbol is Symbol3D;
/**
 * Is the Symbol compatible with Point Geometries.
 *
 * @param symbol The Symbol.
 */
export declare function isPointGeometrySymbol(symbol: unknown): symbol is SimpleMarkerSymbol | PictureMarkerSymbol | WebStyleSymbol | TextSymbol | CIMSymbol | PointSymbol3D | LabelSymbol3D;
/**
 * Is the Symbol compatible with Mesh Geometries.
 *
 * @param symbol The Symbol.
 */
export declare function isMeshGeometrySymbol(symbol: unknown): symbol is MeshSymbol3D | LabelSymbol3D;
/**
 * Is the Symbol compatible with Polyline Geometries.
 *
 * @param symbol The Symbol.
 */
export declare function isPolylineGeometrySymbol(symbol: unknown): symbol is SimpleLineSymbol | TextSymbol | CIMSymbol | LineSymbol3D | LabelSymbol3D;
/**
 * Is the Symbol compatible with Polygon Geometries.
 *
 * @param symbol The Symbol.
 */
export declare function isPolygonGeometrySymbol(symbol: unknown): symbol is SimpleFillSymbol | PictureFillSymbol | SimpleMarkerSymbol | TextSymbol | CIMSymbol | PolygonSymbol3D | LabelSymbol3D;
/**
 * Returns true if symbol3DLayer is an IconSymbol3DLayer.
 *
 * @param symbol3DLayer The Symbol3DLayer to check.
 */
export declare function isIconSymbol3DLayer(symbol3DLayer: unknown): symbol3DLayer is IconSymbol3DLayer;
/**
 * Returns true if symbol3DLayer is an ObjectSymbol3DLayer.
 *
 * @param symbol3DLayer The Symbol3DLayer to check.
 */
export declare function isObjectSymbol3DLayer(symbol3DLayer: unknown): symbol3DLayer is ObjectSymbol3DLayer;
/**
 * Returns true if symbol3DLayer is a PathSymbol3DLayer.
 *
 * @param symbol3DLayer The Symbol3DLayer to check.
 */
export declare function isPathSymbol3DLayer(symbol3DLayer: unknown): symbol3DLayer is PathSymbol3DLayer;
/**
 * Returns true if symbol3DLayer is a LineSymbol3DLayer.
 *
 * @param symbol3DLayer The Symbol3DLayer to check.
 */
export declare function isLineSymbol3DLayer(symbol3DLayer: unknown): symbol3DLayer is LineSymbol3DLayer;
/**
 * Returns true if symbol3DLayer is a FillSymbol3DLayer.
 *
 * @param symbol3DLayer The Symbol3DLayer to check.
 */
export declare function isFillSymbol3DLayer(symbol3DLayer: unknown): symbol3DLayer is FillSymbol3DLayer;
/**
 * Returns true if symbol3DLayer is a ExtrudeSymbol3DLayer.
 *
 * @param symbol3DLayer The Symbol3DLayer to check.
 */
export declare function isExtrudeSymbol3DLayer(symbol3DLayer: unknown): symbol3DLayer is ExtrudeSymbol3DLayer;
