import type { BillingAdapter } from "./types.js"; /** A postal address, in Stripe's field names. */ export type BillingAddress = { line1: string; line2?: string | null; city?: string | null; /** State / province / region. */ state?: string | null; postal_code?: string | null; /** Two-letter ISO country. */ country: string; }; export type BillingProfile = { /** Where Stripe mails invoices. Null when never overridden. */ invoiceEmail: string | null; /** Company name printed on the invoice. Null when never overridden. */ companyName: string | null; /** * Billing address printed on the invoice. * * Not cosmetic: it is also what decides VAT on a sale, so changing it changes * what future invoices charge. */ address: BillingAddress | null; /** * Language for invoices, receipts, credit notes and the hosted invoice page. * * Stripe stores an ordered LIST of preferred locales; this exposes the first, * because a settings UI asks for one language and round-tripping a list * through a single select would silently drop the rest. */ invoiceLocale: string | null; }; export { COMPANY_NAME_MAX, INVOICE_EMAIL_MAX } from "./ui/limits.js"; export declare function getBillingProfile(adapter: BillingAdapter, orgId: string): Promise; /** * Set or clear the invoice recipient, company name, address and language. * * Only the keys you pass are touched, so saving one field can't silently wipe * the other. Passing null (or an empty string) clears that field back to the * app's default. */ export declare function updateBillingProfile(adapter: BillingAdapter, orgId: string, patch: { invoiceEmail?: string | null; companyName?: string | null; address?: BillingAddress | null; invoiceLocale?: string | null; }): Promise; //# sourceMappingURL=billing-profile.d.ts.map