import { type AriaAttributes, type HTMLAttributes, type ReactElement, type Ref } from "react";
import { type MaterialSymbolName } from "./material.js";
import { type MaterialSymbolCustomization, type MaterialSymbolFill, type MaterialSymbolGrade, type MaterialSymbolOpticalSize, type MaterialSymbolWeight } from "./materialConfig.js";
import { type MaterialSymbolClassNameOptions } from "./styles.js";
declare module "react" {
interface CSSProperties {
"--rmd-symbol-fill"?: MaterialSymbolFill;
"--rmd-symbol-wght"?: MaterialSymbolWeight;
"--rmd-symbol-grad"?: MaterialSymbolGrade;
"--rmd-symbol-opsz"?: MaterialSymbolOpticalSize;
}
}
/**
* @since 6.0.0
*/
export interface MaterialSymbolProps extends HTMLAttributes, MaterialSymbolCustomization, Partial {
ref?: Ref;
/** @defaultValue `true` */
"aria-hidden"?: AriaAttributes["aria-hidden"];
name: MaterialSymbolName;
children?: never;
}
/**
* This is a convenience component that provides autocomplete for all the
* available material symbols via the `name` prop.
*
* Note: You might notice IDE slowdowns for files that use this component since
* there are so many icons available. If it becomes an issue, just stop using
* this component and define the icons inline instead.
*
* @example Simple Example
* ```tsx
* import { MaterialSymbol } from "@react-md/core/icon/MaterialSymbol";
* import type { ReactElement } from "react";
* import { createRoot } from "react-dom/client";
*
* function Example(): ReactElement {
* return (
* <>
*
*
*
*
*
* >
* );
* }
*
* const root = createRoot(document.getElementById("root"));
* root.render();
* ```
*
* @see {@link https://react-md.dev/components/icon | Icon Demos}
* @see {@link https://react-md.dev/components/material-icons|Available Material Icons}
* @since 6.0.0
*/
export declare function MaterialSymbol(props: MaterialSymbolProps): ReactElement;