import { type Email, type Session, type Service, type IUser } from '@accounts/mikro-orm';
import { type Connection, type Constructor, EntityManager, type IDatabaseDriver } from '@mikro-orm/core';
import { type DatabaseType } from '@accounts/types';
export * from './types';
export * from './utils';
export interface AccountsMikroORMModuleConfig<CustomUser extends IUser<CustomEmail, CustomSession, CustomService>, CustomEmail extends Email<CustomUser>, CustomSession extends Session<CustomUser>, CustomService extends Service<CustomUser>> {
    em?: EntityManager<IDatabaseDriver<Connection>>;
    type?: DatabaseType.Both;
    UserEntity?: Constructor<CustomUser | IUser<CustomEmail, CustomSession, CustomService>>;
    EmailEntity?: Constructor<CustomEmail | Email<CustomUser>>;
    SessionEntity?: Constructor<CustomSession | Session<CustomUser>>;
    ServiceEntity?: Constructor<CustomService | Service<CustomUser>>;
}
export declare const createAccountsMikroORMModule: <CustomUser extends IUser<CustomEmail, CustomSession, CustomService>, CustomEmail extends Email<CustomUser>, CustomSession extends Session<CustomUser>, CustomService extends Service<CustomUser>>({ em, EmailEntity, SessionEntity, ServiceEntity, UserEntity, }?: AccountsMikroORMModuleConfig<CustomUser, CustomEmail, CustomSession, CustomService>) => import("graphql-modules").Module;
