import * as React from 'react'; import type { Theme } from '../../theme/theme'; export declare const iconSizes: readonly ["tiny", "small", "medium", "large"]; export type IconSize = (typeof iconSizes)[number]; export type IconTone = 'primary' | 'secondary' | 'tertiary' | 'positive' | 'critical'; export type Glyph = string | React.ComponentType; export type GlyphMap = { [k in IconSize]?: Glyph; }; type SharedIconProps = { className?: string style?: React.CSSProperties }; export type IconProps = SharedIconProps & { size?: IconSize tone?: IconTone }; export type Icon = React.ComponentType; export declare function getGlyphAndClassForSize(size: IconSize, glyphs: GlyphMap): [Glyph, string]; export declare const Internal: { create: (sources: T, followDirection?: boolean) => Icon; createSpinning: (sources: T, followDirection?: boolean) => Icon; createWithExtraClassname: (sources: T, extraClassName: string, followDirection?: boolean, defaultSize?: IconSize) => Icon; createThemed: (defaultMedia: T, themedMedia: { [K in keyof T]: Record | undefined; }, followDirection?: boolean) => ((props: IconProps) => React.JSX.Element); }; export {};