import type { Injector } from 'graphql-modules';
import type { AddBusinessTripTravelAndSubsistenceExpenseInput, BusinessTripExpenseCategories } from '../../../__generated__/types.js';
import type { IGetTransactionsByChargeIdsResult } from '../../transactions/types.js';
import type { business_trip_transaction_type, IUpdateBusinessTripEmployeePaymentParams, IUpdateBusinessTripExpenseParams } from '../types.js';
export declare const validateTransactionAgainstBusinessTrips: (injector: Injector, transaction: IGetTransactionsByChargeIdsResult) => Promise<boolean>;
export declare const getTransactionMatchedAmount: (injector: Injector, transaction: IGetTransactionsByChargeIdsResult) => Promise<{
    isFullyMatched: boolean;
    amount: number;
    errors?: string[];
}>;
export declare function coreExpenseUpdate(injector: Injector, fields: IUpdateBusinessTripExpenseParams & IUpdateBusinessTripEmployeePaymentParams & {
    id: string;
}, categoryToValidate?: business_trip_transaction_type): Promise<void | import("../types.js").IUpdateBusinessTripExpenseResult[]>;
export declare function generateChargeForEmployeePayment(injector: Injector, businessTripId: string, description?: string): Promise<string>;
export declare const updateExistingTripExpense: (injector: Injector, businessTripExpenseId: string, transactionId: string, category?: BusinessTripExpenseCategories, amount?: number | null) => Promise<void>;
export declare function createTravelAndSubsistenceExpense(context: GraphQLModules.Context, fields: AddBusinessTripTravelAndSubsistenceExpenseInput): Promise<string>;
