import { BasicComponent, TemplateFunction, HttpServiceResponse } from "@ribajs/core";
import { BaseCache } from "@ribajs/cache";
import { JsxBs5IconProps } from "../../types/jsx/jsx-icon-props.js";
export declare class Bs5IconComponent extends BasicComponent {
    static tagName: string;
    static cache: BaseCache<Promise<HttpServiceResponse<string>>>;
    static get observedAttributes(): (keyof JsxBs5IconProps)[];
    scope: any;
    constructor();
    protected getSvg(): SVGSVGElement | null;
    protected fetchCached(url: string): Promise<HttpServiceResponse<string>>;
    protected fetchIcon(src: string): Promise<string>;
    protected getBasename(src: string): string;
    protected getAlternativeText(src: string): string;
    protected onSrcChanged(): Promise<void>;
    protected removeColor(): void;
    protected setColor(color?: string): void;
    protected setSize(size: number): void;
    protected setWidth(width: number): void;
    protected setHeight(height: number): void;
    protected setDirection(direction: string): void;
    protected attributeChangedCallback(name: string, oldValue: any, newValue: any, namespace: string | null): Promise<void>;
    protected connectedCallback(): void;
    protected template(): ReturnType<TemplateFunction>;
}
