import { color } from '@synnaxlabs/x';
import { FC as ReactFC, ReactElement as BaseReactElement, Ref } from 'react';
import { IconBaseProps } from 'react-icons';
import { Text } from '../text';
export interface IconProps extends Omit<IconBaseProps, "color" | "children"> {
    ref?: Ref<SVGSVGElement>;
    color?: color.Crude | Text.Shade;
}
/**
 * A type representing a React element that renders an icon. This element encapsulates
 * the visual representation of an icon component, typically rendered as an SVG with the
 * specified base properties.
 */
export interface ReactElement extends BaseReactElement<IconProps> {
}
export interface FC extends ReactFC<IconProps> {
}
interface WrapIconOpts {
    className?: string;
}
export interface SVGFC extends ReactFC<IconBaseProps> {
}
export declare const wrapSVGIcon: (Base: SVGFC, name: string, { className }?: WrapIconOpts) => FC;
export declare const createComposite: (Base: FC, { topRight, topLeft, bottomLeft, bottomRight }: Record<string, FC>) => FC;
export {};
//# sourceMappingURL=Icon.d.ts.map