import { Observable } from "rxjs";
import { KnoraApiConfig } from "../../../knora-api-config";
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>;
    /**
     * 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>;
}
