import { IMidwayContainer } from '@midwayjs/core';
import { TraceScopeType, TraceService } from '@mwcp/otel';
import { Application, Context } from '@mwcp/share';
import { type HookReturn, type KmoreTransaction, type TransactionHookOptions, type TransactionPreHookOptions } from 'kmore';
import { TrxStatusService } from '../trx-status.service.js';
import { DbConfig } from '../types.js';
export declare class DbHookTrx<SourceName extends string = string> {
    private readonly sourceConfig;
    readonly app: Application;
    readonly applicationContext: IMidwayContainer;
    readonly appDir: string;
    readonly baseDir: string;
    readonly trxStatusSvc: TrxStatusService;
    readonly traceService: TraceService;
    getDbConfigByDbId(dbId: SourceName): DbConfig | undefined;
    getWebContext(): Context | undefined;
    getTraceScopeByTrx(transaction: KmoreTransaction): TraceScopeType;
    transactionPreHook(this: DbHookTrx, options: TransactionPreHookOptions): Promise<HookReturn | undefined>;
    transactionPostHook(this: DbHookTrx, options: TransactionHookOptions): Promise<void>;
    beforeCommitHook(this: DbHookTrx<SourceName>, options: TransactionHookOptions): Promise<void>;
    afterCommitHook(this: DbHookTrx<SourceName>, options: TransactionHookOptions): Promise<void>;
    beforeRollbackHook(this: DbHookTrx<SourceName>, options: TransactionHookOptions): Promise<void>;
    afterRollbackHook(this: DbHookTrx<SourceName>, options: TransactionHookOptions): Promise<void>;
}
//# sourceMappingURL=db-hook.trx.d.ts.map