import type { ILogger } from "../logging";
import { ServiceErrorPresets, ServiceErrors } from "./error";
import type { ITransactionService } from "./types";
export declare const ServiceErrorPreset: ServiceErrorPresets<"" | "not_found" | "invalid_param" | "unauthorized" | "forbidden" | "not_allowed" | "invalid_state" | "misconfiguration" | "not_supported" | "processing_error">;
export declare function BaseService<E extends ServiceErrorPresets = typeof ServiceErrorPreset>(presets?: E): typeof _BaseService<ServiceErrors<E>>;
export declare class _BaseService<TError extends string> {
    protected readonly logger: ILogger;
    private readonly __arguments;
    private readonly __errorPresets?;
    private __inTransaction;
    constructor(logger: ILogger, ...args: any[]);
    protected _setArguments(args: readonly any[]): void;
    inTransaction(data: ITransactionService): this;
    protected _raiseError(error: TError, data?: Record<string, any>): never;
    protected _raiseError(error: TError, message?: string, data?: Record<string, any>): never;
}
