import { Ref } from 'vue';
import { Material, MaterialDescription, NodeFrom, Service } from '@vtj/core';
import { Provider } from '@vtj/renderer';
export interface AssetGroup {
    name: string;
    label: string;
    count: number;
    library?: string;
    names?: string[];
    components?: MaterialDescription[];
    children?: AssetGroup[];
}
export declare class Assets {
    service: Service;
    provider: Provider;
    components: MaterialDescription[];
    componentMap: Map<string, MaterialDescription>;
    groups: Ref<AssetGroup[]>;
    private caches;
    constructor(service: Service, provider: Provider);
    private getCateoryComponents;
    private parseGroups;
    load(materials: Material[]): void;
    getBlockMaterial(from: NodeFrom, blockName?: string): Promise<MaterialDescription | null>;
    clearCaches(): void;
}
