import { ObjectId } from 'mongodb'; import { Platform, type IPrimaryKey, type Primary, type NamingStrategy, type Constructor, type EntityRepository, type EntityProperty, type PopulateOptions, type EntityMetadata, type IDatabaseDriver, type EntityManager, type Configuration, type MikroORM, type TransformContext } from '@mikro-orm/core'; import { MongoExceptionConverter } from './MongoExceptionConverter.js'; import { MongoSchemaGenerator } from './MongoSchemaGenerator.js'; /** Platform implementation for MongoDB. */ export declare class MongoPlatform extends Platform { protected readonly exceptionConverter: MongoExceptionConverter; setConfig(config: Configuration): void; getNamingStrategy(): { new (): NamingStrategy; }; getRepositoryClass(): Constructor>; /** @inheritDoc */ lookupExtensions(orm: MikroORM): void; /** @inheritDoc */ getExtension(extensionName: string, extensionKey: string, moduleName: string, em: EntityManager): T; getSchemaGenerator(driver: IDatabaseDriver, em?: EntityManager): MongoSchemaGenerator; normalizePrimaryKey(data: Primary | IPrimaryKey | ObjectId): T; denormalizePrimaryKey(data: number | string): IPrimaryKey; usesImplicitTransactions(): boolean; convertsJsonAutomatically(): boolean; convertJsonToDatabaseValue(value: unknown): unknown; convertJsonToJSValue(value: unknown, context?: TransformContext): unknown; marshallArray(values: string[]): string; cloneEmbeddable(data: T): T; shouldHaveColumn(prop: EntityProperty, populate: PopulateOptions[], exclude?: string[]): boolean; validateMetadata(meta: EntityMetadata): void; isAllowedTopLevelOperator(operator: string): boolean; getDefaultClientUrl(): string; }