import DataLoader from 'dataloader';
import { AdminContextProvider } from '../../admin-context/providers/admin-context.provider.js';
import { TenantAwareDBClient } from '../../app-providers/tenant-db-client.js';
import type { IDeleteBusinessTripAccommodationsExpenseParams, IInsertBusinessTripAccommodationsExpenseParams, IUpdateBusinessTripAccommodationsExpenseParams } from '../types.js';
export declare class BusinessTripAccommodationsExpensesProvider {
    private db;
    private adminContextProvider;
    constructor(db: TenantAwareDBClient, adminContextProvider: AdminContextProvider);
    private batchBusinessTripsAccommodationsExpensesByBusinessTripIds;
    getBusinessTripsAccommodationsExpensesByBusinessTripIdLoader: DataLoader<string, import("../types.js").IGetBusinessTripsAccommodationsExpensesByBusinessTripIdsResult[], string>;
    private batchBusinessTripsAccommodationsExpensesByIds;
    getBusinessTripsAccommodationsExpensesByIdLoader: DataLoader<string, import("../types.js").IGetBusinessTripsAccommodationsExpensesByIdsResult | undefined, string>;
    updateBusinessTripAccommodationsExpense(params: IUpdateBusinessTripAccommodationsExpenseParams): Promise<import("../types.js").IUpdateBusinessTripAccommodationsExpenseResult[]>;
    insertBusinessTripAccommodationsExpense(params: IInsertBusinessTripAccommodationsExpenseParams): Promise<import("../types.js").IInsertBusinessTripAccommodationsExpenseResult[]>;
    deleteBusinessTripAccommodationsExpense(params: IDeleteBusinessTripAccommodationsExpenseParams): Promise<import("../types.js").IDeleteBusinessTripAccommodationsExpenseResult[]>;
    invalidateById(expenseId: string): Promise<void>;
    invalidateByBusinessTripId(businessTripId: string): Promise<void>;
    clearCache(): void;
}
