import { AsyncLocalStorage } from "async_hooks"; import { type Knex } from "knex"; import { type SonamuConfig } from "../api/config"; import { TransactionContext } from "./transaction-context"; export type DBPreset = "w" | "r"; export type SonamuDBConfig = { development_master: Knex.Config; development_slave: Knex.Config; production_master: Knex.Config; production_slave: Knex.Config; fixture: Knex.Config; test: Knex.Config; }; export declare class DBClass { private wdb?; private rdb?; private workerDBs; private currentConfig; transactionStorage: AsyncLocalStorage; runWithTransaction(callback: () => Promise): Promise; setConfig(dbConfig: SonamuDBConfig): void; private getCurrentConfig; getTransactionContext(): TransactionContext; getDB(which: DBPreset): Knex; /** * 병렬 테스트에서 worker별 DB 인스턴스를 반환합니다. * VITEST_POOL_ID 환경변수로 worker를 식별하여 해당 DB에 연결합니다. */ private getWorkerDB; getDBConfig(which: DBPreset): Knex.Config; destroy(): Promise; generateDBConfig(config: SonamuConfig["database"]): SonamuDBConfig; testTransaction: Knex.Transaction | null; createTestTransaction(): Promise; clearTestTransaction(): Promise; getTestConnection(): Promise; } export declare const DB: DBClass; //# sourceMappingURL=db.d.ts.map