import { Ref, InjectionKey } from 'vue';
/** 图标库的默认 iconfont CSS 地址 注意 这个是旧的地址 每次更新后都需要替换最新的地址*/
export declare const HB_ICON_DEFAULT_CSS_URL = "//at.alicdn.com/t/c/font_5174416_x116sg1gb1q.css";
export declare const HB_ICON_DEFAULT_SYMBOL_CSS_URL = "//at.alicdn.com/t/c/font_5174416_x116sg1gb1q.js";
/** 图标渲染模式：字体 class 或多色 SVG Symbol */
export type HbLibIconMode = 'font' | 'symbol';
/** 通过 app.use(HbLibIconList, options) 注入的全局配置 */
export interface HbLibIconGlobalOptions {
    /** iconfont 资源地址，支持 `.css`（字体图标）或 `.js`（Symbol / 彩色 SVG） */
    cssUrl?: string;
    /** 图标渲染模式：字体 class 或多色 SVG Symbol */
    mode?: HbLibIconMode;
}
/** provide/inject 的 key */
export declare const HB_ICON_GLOBAL_KEY: InjectionKey<HbLibIconGlobalOptions>;
export interface UseIconfontResult {
    /** 字体模式下为 @font-face 的 font-family；Symbol 模式下为空字符串 */
    iconBaseClass: Ref<string>;
    /** 字体模式下为图标 class 公共前缀；Symbol 模式下为 symbol id 的公共前缀（常见为 `icon-`） */
    iconPrefix: Ref<string>;
    /** 去掉公共前缀后的名称列表，可作为 `HbLibIcon` 的 name  */
    iconClasses: Ref<string[]>;
    /** `font`：class + 字体；`symbol`：`<use href="#前缀+name">`，保留路径中的多色填充 */
    iconMode: Ref<HbLibIconMode>;
}
/**
 * `useIconfont` 的可选配置（通过第三个参数传入）。
 *
 * 同页多套 Symbol（`.js`）时，iconfont 写入的 `<symbol id>` 会重复，`<use href="#id">` 会指错。
 * 设置 `symbolIdScope` 可在注入前改写 id，与 `iconPrefix` 一致，从而与 main 默认地址并存。
 */
export interface UseIconfontOptions {
    /**
     * Symbol（`.js`）模式下为每个 `<symbol id>` 增加的前缀。
     * - `true`：按资源 URL 自动生成稳定前缀（换地址取新图标时不必改 main）
     * - `string`：自定义前缀（建议以 `-` 结尾，例如 `design-v2-`）
     */
    symbolIdScope?: string | boolean;
}
/** 是否为 iconfont「Symbol（彩色 SVG）」类型的 `.js` 地址 */
export declare function isIconfontSymbolJsUrl(url: string): boolean;
/**
 * 在 iconfont Symbol 脚本文本中，为每个 `<symbol id="...">` 增加前缀（仅匹配 symbol 标签上的 id）。
 */
export declare function prefixSymbolIdsInIconfontJs(jsText: string, scopePrefix: string): string;
/** 与 injectIconfontJs 内脚本节点 id 规则一致，便于外部判断精灵根节点 id */
export declare function getIconfontSpriteRootId(resolvedUrl: string, injectCacheKey?: string): string;
/**
 * 为 iconfont Symbol 脚本里**第一个**根级 `<svg>` 设置稳定 `id`，便于 DOM 去重：
 * 若页面上已有同 id 的精灵 SVG，可跳过再次执行脚本。
 */
export declare function ensureRootSvgSpriteIdInIconfontJs(jsText: string, spriteRootId: string): string;
/**
 * 加载并解析 iconfont 资源（CSS 字体或 Symbol JS）的组合式函数。
 *
 * 子树单独换地址：在本页 `setup` 中调用本 hook，再对子组件 `provide('iconBaseClass', …)` 等同 main 的四个 key，
 * 即可覆盖注入；Symbol 多套并存时请传 `options.symbolIdScope`（或 `true`），避免 `<symbol id>` 冲突。
 *
 * @param cssUrl 资源地址：`.css` 为字体图标，`.js` 为 Symbol 彩色 SVG。
 * @param mode 渲染模式。
 * @param options 可选；`symbolIdScope` 仅对 Symbol `.js` 生效。
 */
export declare function useIconfont(cssUrl?: any, mode?: 'font' | 'symbol', options?: UseIconfontOptions): UseIconfontResult;
//# sourceMappingURL=useIconfont.d.ts.map