import { Observable } from 'rxjs';
import { KnoraApiConfig } from '../../../knora-api-config';
import { ApiResponseError } from '../../../models/api-response-error';
import { CanDoResponse } from '../../../models/v2/ontologies/read/can-do-response';
import { CreateResource } from '../../../models/v2/resources/create/create-resource';
import { DeleteResource } from '../../../models/v2/resources/delete/delete-resource';
import { DeleteResourceResponse } from '../../../models/v2/resources/delete/delete-resource-response';
import { ReadResource } from '../../../models/v2/resources/read/read-resource';
import { ReadResourceSequence } from '../../../models/v2/resources/read/read-resource-sequence';
import { UpdateResourceMetadata } from '../../../models/v2/resources/update/update-resource-metadata';
import { UpdateResourceMetadataResponse } from '../../../models/v2/resources/update/update-resource-metadata-response';
import { Endpoint } from '../../endpoint';
import { V2Endpoint } from '../v2-endpoint';
/**
 * Handles requests to the resources route of the Knora API.
 *
 * @category Endpoint V2
 */
export declare class ResourcesEndpointV2 extends Endpoint {
    protected readonly knoraApiConfig: KnoraApiConfig;
    protected readonly path: string;
    private readonly v2Endpoint;
    /**
     * @category Internal
     * @param knoraApiConfig the config object.
     * @param path this endpoint's base path.
     * @param v2Endpoint a reference to the v2 endpoint.
     */
    constructor(knoraApiConfig: KnoraApiConfig, path: string, v2Endpoint: V2Endpoint);
    /**
     * Given a sequence of resource IRIs, gets the resources from Knora.
     *
     * @param resourceIris Iris of the resources to get.
     * @param version Timestamp of the resource version.
     */
    getResources(resourceIris: string[], version?: string): Observable<ReadResourceSequence>;
    /**
     * Given a resource IRI, gets the resource from Knora.
     *
     * @param resourceIri Iri of the resource to get.
     * @param version Timestamp of the resource version.
     */
    getResource(resourceIri: string, version?: string): Observable<ReadResource>;
    /**
     * Creates a new resource.
     *
     * @param resource the resource to be created.
     */
    createResource(resource: CreateResource): Observable<ReadResource>;
    /**
     * Updates a resource's metadata.
     *
     * @param resourceMetadata the new metadata.
     */
    updateResourceMetadata(resourceMetadata: UpdateResourceMetadata): Observable<UpdateResourceMetadataResponse>;
    /**
     * Checks whether a resource can be deleted or not.
     *
     * @param resource the resource to check.
     */
    canDeleteResource(resource: DeleteResource): Observable<CanDoResponse | ApiResponseError>;
    /**
     * Deletes a resource.
     *
     * @param resource the resource to be deleted.
     */
    deleteResource(resource: DeleteResource): Observable<DeleteResourceResponse>;
    /**
     * Erases a resource.
     *
     * @param resource the resource to be deleted.
     */
    eraseResource(resource: DeleteResource): Observable<DeleteResourceResponse>;
}
//# sourceMappingURL=resources-endpoint-v2.d.ts.map