import { Logger } from 'winston';
import { ExecutionContext } from '@dolittle/sdk.execution';
import { CallRequestContext } from '@dolittle/contracts/Services/CallContext_pb';
import { Failure } from '@dolittle/contracts/Protobuf/Failure_pb';
import { ResourcesClient } from '@dolittle/contracts/Runtime/Resources/Resources_grpc_pb';
import { GetMongoDBResponse, GetRequest } from '@dolittle/contracts/Runtime/Resources/Resources_pb';
import { ResourceCreator } from '../../Internal/ResourceCreator';
import { MongoDBResource } from './MongoDBResource';
/**
 * Represents an implementation of {@link ResourceCreator} for MongoDB.
 */
export declare class MongoDBResourceCreator extends ResourceCreator<MongoDBResource, GetRequest, GetMongoDBResponse> {
    /**
     * Initialises a new instance of the {@link MongoDBResourceCreator} class.
     * @param {ResourcesClient} client - The resources client to make requests to the Runtime with.
     * @param {ExecutionContext} executionContext - The base execution context for the client.
     * @param {Logger} logger - The logger to use for logging.
     */
    constructor(client: ResourcesClient, executionContext: ExecutionContext, logger: Logger);
    /** @inheritdoc */
    protected createResourceRequest(callContext: CallRequestContext): GetRequest;
    /** @inheritdoc */
    protected requestFailed(response: GetMongoDBResponse): [false] | [true, Failure];
    /** @inheritdoc */
    protected createResourceFrom(response: GetMongoDBResponse): Promise<MongoDBResource>;
}
//# sourceMappingURL=MongoDBResourceCreator.d.ts.map