import { PropertyValueMap } from 'lit';
export type IconOptions = {
    width: number;
    height: number;
    color: string;
    strokeWidth: number;
    secondaryColor?: string;
};
export type IconSize = 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | '2x-large';
export type IconPack = undefined | 'vuesax';
export type IconVariant = 'linear' | 'bold' | 'outline' | 'broken' | 'bulk' | 'twotone';
declare const LuksoIcon_base: typeof import('lit').LitElement;
export declare class LuksoIcon extends LuksoIcon_base {
    name: any;
    size: IconSize;
    color: string;
    secondaryColor: any;
    pack: IconPack | undefined;
    variant: IconVariant | undefined;
    private svgContent;
    private lastAttemptedKey;
    private failedLoadAttempt;
    private sizes;
    private svgModules;
    /**
     * Loads the SVG content for the specified icon from the icon pack.
     * Uses bundled assets for production and dynamic imports for development.
     * Falls back to static file fetch for Storybook environment.
     *
     * @param pack - icon pack name
     * @param variant - icon variant
     * @param iconName - name of the icon
     */
    private loadSvg;
    /**
     * Processes the loaded SVG content from Vuesax pack to apply size and color customizations.
     *
     * @param svgContent - raw SVG content as string
     */
    private processVuesaxSvg;
    willUpdate(changedProperties: PropertyValueMap<this>): void;
    updated(changedProperties: PropertyValueMap<this>): Promise<void>;
    render(): import('lit-html').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'lukso-icon': LuksoIcon;
    }
}
export {};
//# sourceMappingURL=index.d.ts.map