import { Observable } from 'rxjs';
import { V2Endpoint } from '../../api/v2/v2-endpoint';
import { KnoraApiConfig } from '../../knora-api-config';
import { ReadOntology } from '../../models/v2/ontologies/read/read-ontology';
import { GenericCache } from '../GenericCache';
import { ResourceClassAndPropertyDefinitions } from './resource-class-and-property-definitions';
/**
 * Caches ontologies obtained from Knora and handles direct dependencies between ontologies.
 */
export declare class OntologyCache extends GenericCache<ReadOntology> {
    private knoraApiConfig;
    private v2Endpoint;
    constructor(knoraApiConfig: KnoraApiConfig, v2Endpoint: V2Endpoint);
    /**
     * Gets an ontology from the cache including its direct dependencies.
     *
     * The ontology Iris are the keys of the resulting Map.
     *
     * @param ontologyIri the Iri of the ontology.
     * @returns the requested ontology and its direct dependencies.
     */
    getOntology(ontologyIri: string): Observable<Map<string, ReadOntology>>;
    /**
     * Gets a resource class definition including the property definitions
     * the resource class has cardinalities for.
     *
     * This method does not return third party ontology entities, e.g., rdfs.
     *
     * @param resourceClassIri
     */
    getResourceClassDefinition(resourceClassIri: string): Observable<ResourceClassAndPropertyDefinitions>;
    /**
     * Public method to access the reloadItem method
     *
     * @param key the id of the information to be returned.
     * @return the item
     */
    reloadCachedItem(key: string): Observable<ReadOntology>;
    protected requestItemFromKnora(key: string, isDependency: boolean): Observable<ReadOntology[]>;
    protected getKeyOfItem(item: ReadOntology): string;
    protected getDependenciesOfItem(item: ReadOntology): string[];
}
//# sourceMappingURL=OntologyCache.d.ts.map