import { Color } from '../types';
import { DefineComponent } from 'vue';
import { HTMLAttributes } from 'svelte/elements';
export interface IconProps {
    /** Icon source path */
    src: string;
    /** Icon color */
    color?: Color;
    /** Icon size */
    size?: 's' | 'm' | 'l';
    /** Accessible name. If not provided, icon is ignored by screen readers */
    alt?: string;
    children?: any;
}
declare module 'vue' {
    interface GlobalComponents {
        'pyro-icon': DefineComponent<IconProps>;
    }
}
interface PyroIconPreact extends Omit<JSX.HTMLAttributes, keyof IconProps>, IconProps {
}
declare module 'preact/jsx-runtime' {
    namespace JSX {
        interface IntrinsicElements {
            'pyro-icon': PyroIconPreact;
        }
    }
}
interface PyroIconSvelte extends Omit<HTMLAttributes<any>, keyof IconProps>, IconProps {
}
declare module 'svelte/elements' {
    interface SvelteHTMLElements {
        'pyro-icon': PyroIconSvelte;
    }
}
declare module 'solid-js' {
    namespace JSX {
        interface IntrinsicElements {
            'pyro-icon': PyroIconPreact;
        }
    }
}
export {};
