import { type EntitySchemaWithMeta, EntityManager, type AnyEntity, type ConnectionType, type EntityData, type EntityName, type EntityRepository, type GetRepository, type QueryResult, type FilterQuery, type LoggingOptions, type RawQueryFragment, } from '@mikro-orm/core'; import type { AbstractSqlDriver } from './AbstractSqlDriver.js'; import type { NativeQueryBuilder } from './query/NativeQueryBuilder.js'; import type { QueryBuilder } from './query/QueryBuilder.js'; import type { SqlEntityRepository } from './SqlEntityRepository.js'; import type { Kysely } from 'kysely'; import type { InferClassEntityDB, InferKyselyDB } from './typings.js'; import { type MikroKyselyPluginOptions } from './plugin/index.js'; /** Options for `SqlEntityManager.getKysely()`. */ export interface GetKyselyOptions extends MikroKyselyPluginOptions { /** Connection type to use (`'read'` or `'write'`). */ type?: ConnectionType; } /** * @inheritDoc */ export declare class SqlEntityManager< Driver extends AbstractSqlDriver = AbstractSqlDriver, > extends EntityManager { /** * Creates a QueryBuilder instance */ createQueryBuilder( entityName: EntityName | QueryBuilder, alias?: RootAlias, type?: ConnectionType, loggerContext?: LoggingOptions, ): QueryBuilder; /** * Shortcut for `createQueryBuilder()` */ qb( entityName: EntityName, alias?: RootAlias, type?: ConnectionType, loggerContext?: LoggingOptions, ): QueryBuilder; /** * Returns configured Kysely instance. */ getKysely( options?: TOptions, ): Kysely< TDB extends undefined ? InferKyselyDB, TOptions> & InferClassEntityDB, TOptions> : TDB >; /** Executes a raw SQL query, using the current transaction context if available. */ execute | EntityData[] = EntityData[]>( query: string | NativeQueryBuilder | RawQueryFragment, params?: any[], method?: 'all' | 'get' | 'run', loggerContext?: LoggingOptions, ): Promise; getRepository = SqlEntityRepository>( entityName: EntityName, ): GetRepository; protected applyDiscriminatorCondition( entityName: EntityName, where: FilterQuery, ): FilterQuery; } type EntitiesFromManager> = NonNullable extends any[] ? Extract[number], EntitySchemaWithMeta> : never; type AllEntitiesFromManager> = NonNullable extends any[] ? NonNullable[number] : never; export {};