import { ApiFunctionTransactionRegistry } from './transaction/registry.class';
import { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
import { IApiFunctionContext, IApiFunctionStepContext } from '../../../interface/class/api/function';
import { EntityManager, QueryRunner } from 'typeorm';
export declare class ApiFunctionContextStorage {
    private static readonly STORAGE;
    private static readonly TRANSACTION_REGISTRIES;
    static get<E extends IApiBaseEntity>(): IApiFunctionContext<E> | undefined;
    static getEventManager(): EntityManager | undefined;
    static getStep<E extends IApiBaseEntity>(): IApiFunctionStepContext<E> | undefined;
    static getTransactionQueryRunner(): QueryRunner | undefined;
    static getTransactionRegistry(): ApiFunctionTransactionRegistry | undefined;
    static getTransactionRegistryForEntityManager(entityManager: EntityManager): ApiFunctionTransactionRegistry | undefined;
    static run<E extends IApiBaseEntity, R>(context: IApiFunctionContext<E>, callback: () => Promise<R>): Promise<R>;
    static runStep<E extends IApiBaseEntity, R>(context: IApiFunctionStepContext<E>, callback: () => Promise<R>): Promise<R>;
    static runTransaction<R>(entityManager: EntityManager, queryRunner: QueryRunner, registry: ApiFunctionTransactionRegistry, callback: () => Promise<R>): Promise<R>;
    static runWithoutStepContext<R>(callback: () => Promise<R>): Promise<R>;
}
