import type { StripeClient } from "../client/stripe-client.js"; import type { ChargeItem, PayoutBatch, StripePayout } from "./types.js"; /** Unix-seconds timestamp for the start of a YYYY-MM-DD date (UTC). */ export declare function cutoffToUnix(cutoffDate: string): number; /** List paid payouts created on or after the cutoff, newest first. */ export declare function fetchPayouts(client: StripeClient, cutoffDate: string): Promise; /** Pull and classify one payout's balance transactions into a PayoutBatch. */ export declare function fetchPayoutBatch(client: StripeClient, payout: StripePayout): Promise; /** * Enrich charges in place with the buyer's company name + VAT id from the Stripe Customer * and Invoice objects — the authoritative identity the buyer entered, far stronger than the * usually-empty billing_details. Opt-in (not run by preview/run, which only summarise): * the identity resolver and the invoicing path call it. Fetches are cached per id and * failures are swallowed (enrichment is best-effort; a missing customer just stays null). */ export declare function enrichChargeIdentity(client: StripeClient, charges: ChargeItem[]): Promise; /** * The Stripe-side identity that must hold for a payout to book cleanly: * payout.net == Σ charge.net − application_fees − refunds − other_fees * Returns the difference in minor units (0 = balances). The caller refuses to * write when this is non-zero. */ export declare function batchImbalanceMinor(batch: PayoutBatch): number;