import { type KyselyPlugin, type PluginTransformQueryArgs, type PluginTransformResultArgs, type QueryResult, type RootOperationNode, type UnknownRow, } from 'kysely'; import type { SqlEntityManager } from '../SqlEntityManager.js'; /** Configuration options for the MikroKyselyPlugin. */ export interface MikroKyselyPluginOptions { /** * Use database table names ('table') or entity names ('entity') in queries. * * @default 'table' */ tableNamingStrategy?: 'table' | 'entity'; /** * Use database column names ('column') or property names ('property') in queries. * * @default 'column' */ columnNamingStrategy?: 'column' | 'property'; /** * Automatically process entity `onCreate` hooks in INSERT queries. * * @default false */ processOnCreateHooks?: boolean; /** * Automatically process entity `onUpdate` hooks in UPDATE queries. * * @default false */ processOnUpdateHooks?: boolean; /** * Convert JavaScript values to database-compatible values (e.g., Date to timestamp, custom types). * * @default false */ convertValues?: boolean; } /** Kysely plugin that transforms queries and results to use MikroORM entity/property naming conventions. */ export declare class MikroKyselyPlugin implements KyselyPlugin { #private; constructor(em: SqlEntityManager, options?: MikroKyselyPluginOptions); transformQuery(args: PluginTransformQueryArgs): RootOperationNode; transformResult(args: PluginTransformResultArgs): Promise>; }