export interface IconDefinition {
    pack: string;
    name: string;
    label: string;
    svg?: string;
    fontClass?: string;
    unicode?: string;
    provider?: string;
    variants?: string[];
    categories?: string[];
    keywords?: string[];
}
export interface IconPack {
    id: string;
    name: string;
    description: string;
    provider: string;
    version: string;
    icons: Record<string, IconDefinition>;
    cssClass?: string;
    fontUrl?: string;
    config?: {
        cdnUrl?: string;
        license?: string;
    };
}
export interface IconProvider {
    name: string;
    displayName: string;
    version: string;
    packs: IconPack[];
    config?: {
        cdnUrl?: string;
        apiKey?: string;
        license?: string;
    };
}
export interface IconPackManager {
    getIconPackNames(): Record<string, string>;
    getIconNames(packId: string): Record<string, string>;
    getIconLabelByName(packId: string, iconName: string): string | null;
    getIconDefinition(packId: string, iconName: string): IconDefinition | null;
    getIcon(iconId: string, provider?: string): IconDefinition | null;
    getProviders(): IconProvider[];
    registerProvider(provider: IconProvider): void;
    searchIcons(query: string, filters?: {
        provider?: string;
        category?: string;
        variants?: string[];
    }): IconDefinition[];
}
//# sourceMappingURL=types.d.ts.map