import { SvelteComponent } from "svelte";
import type { Colors } from '../types/colorTypes';
import type { IconName } from '../types/iconTypes';
export type ComponentWithClassName = new (options: any) => SvelteComponent<{
    className?: string;
}>;
export type IconType = {
    iconName: IconName;
    size?: '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
    color?: Colors;
};
declare const __propDef: {
    props: {
        /**
             * The name of the icon to display.
             * @type {IconName}
             */ iconName?: IconName | undefined;
        /**
             * The size of the icon, determining its scale.
             * @type {'2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'}
             * @default 'md'
             */ size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
        /**
             * The color of the icon, affecting its visual appearance.
             * Can be a predefined color from the library or a custom CSS class.
             * @type {Colors | string}
             * @default 'stone'
             */ color?: Colors | string;
        /**
             * Additional custom CSS classes for styling.
             * @type {string}
             * @default ''
             */ className?: string;
        /**
             * A custom external component. Should be
             * @type {ComponentWithClassName}
             * @default null
             */ externalIcon?: ComponentWithClassName | null;
    };
    events: {
        [evt: string]: CustomEvent<any>;
    };
    slots: {};
    exports?: {};
    bindings?: string;
};
export type IconProps = typeof __propDef.props;
export type IconEvents = typeof __propDef.events;
export type IconSlots = typeof __propDef.slots;
export default class Icon extends SvelteComponent<IconProps, IconEvents, IconSlots> {
}
export {};
