import { TenantAwareDBClient } from '../../app-providers/tenant-db-client.js';
import { ChargesAuthorizationProvider } from '../../charges/providers/charges-authorization.provider.js';
import { ChargesProvider } from '../../charges/providers/charges.provider.js';
import type { IGetChargesApprovalStatusParams } from '../types.js';
export declare class AccountantApprovalProvider {
    private db;
    private auth;
    private charges;
    constructor(db: TenantAwareDBClient, auth: ChargesAuthorizationProvider, charges: ChargesProvider);
    getChargesApprovalStatus(params: IGetChargesApprovalStatusParams): Promise<import("../types.js").IGetChargesApprovalStatusResult[]>;
    /**
     * Degrades a charge's accountant status from APPROVED to PENDING.
     * Meant to be called whenever a charge is modified, so an already-approved
     * charge gets flagged for re-approval. Charges in any other status
     * (UNAPPROVED / PENDING) are left untouched.
     */
    degradeChargeAccountantApproval(chargeId: string): Promise<import("../types.js").IDegradeChargeAccountantApprovalResult>;
}
