import { AssetsJSON, ComponentDescription, AssetPackage, ComponentGroup, TemplateDescription } from './types';
export interface GroupComponents {
    groupId: string | number;
    group: string;
    count: number;
    categories: {
        categoryId: string | number;
        category: string;
        components: ComponentDescription[];
    }[];
}
export interface AssetsOptions {
    loader: () => Promise<AssetsJSON>;
}
export declare class Assets {
    groupComponents: GroupComponents[];
    componentMap: Record<string, ComponentDescription>;
    components: ComponentDescription[];
    packages: AssetPackage[];
    groupTemplates: GroupComponents[];
    templates: TemplateDescription[];
    templateMap: Record<string, TemplateDescription>;
    templateGroups: ComponentGroup[];
    isReady: boolean;
    constructor(options: AssetsOptions);
    parsePackages(): {
        scripts: string[];
        css: string[];
    };
    removeTemplate(name: string): void;
    addTemplate(template: TemplateDescription): void;
}
