import { Decorators } from '@dolittle/sdk.common';
import { Constructor } from '@dolittle/types';
import { CollectionNameLike } from '../../Copies/MongoDB/CollectionName';
import { CopyProjectionToMongoDBDecoratedType } from './CopyProjectionToMongoDBDecoratedType';
/**
 * Decorator to mark a Projection class to copy the read models to a MongoDB collection.
 * @param {CollectionNameLike} [collection] - An optional collection name to use, defaults to the name of the class.
 * @returns {Decorators.Decorator} The decorator.
 */
export declare function copyProjectionToMongoDB(collection?: CollectionNameLike): Decorators.Decorator;
/**
 * Checks whether the specified class is decorated with a copy to MongoDB decorator.
 * @param {Constructor<any>} type - The class to get the decorated copy to MongoDB for.
 * @returns {boolean} True if the decorator is applied, false if not.
 */
export declare function isDecoratedCopyProjectionToMongoDB(type: Constructor<any>): boolean;
/**
 * Gets the {@link CopyProjectionToMongoDBDecoratedType} of the specified class.
 * @param {Constructor<any>} type - The class to get the decorated copy to MongoDB for.
 * @returns {CopyProjectionToMongoDBDecoratedType} The decorated projection type.
 */
export declare function getDecoratedCopyProjectionToMongoDB(type: Constructor<any>): CopyProjectionToMongoDBDecoratedType;
//# sourceMappingURL=copyProjectionToMongoDBDecorator.d.ts.map