import { type MerchantPolicy } from './merchant-recourse.js'; import type { BudgetLimits } from './budget.js'; import type { PaymentsServiceConfig } from './payments-gateway-service.js'; /** The narrow slice of the config manager this needs. Injectable for tests. */ export interface PaymentsConfigReader { get(key: string): unknown; } /** * Whether the CVV is stored, which decides whether purchasing can be * unattended at all. * * `'prompt'` means every purchase stops and waits for a human to type it, the * veto window still runs, but nothing completes while the owner is away. Exposed here * so the daemon can report that honestly rather than a purchase mysteriously * hanging. */ export declare function readCvvHandling(config: PaymentsConfigReader): 'stored' | 'prompt'; /** `payments.enabled` and the configured card, for the terminal gates. */ export declare function readPaymentsEnabled(config: PaymentsConfigReader): boolean; export declare function readDefaultCardId(config: PaymentsConfigReader): string; /** The channels a payment notice is delivered to. */ export declare function readNotifyChannels(config: PaymentsConfigReader): readonly string[]; /** * The budgets, in this currency's minor units. * * Defaults are all zero and all off. A daemon that has never been configured * refuses every purchase with "the daily item budget is 0" rather than * inheriting a number nobody chose, see `decidePurchase`, which treats a zero * item budget as a terminal refusal. */ export declare function readBudgetLimits(config: PaymentsConfigReader, currency: string): BudgetLimits; /** * Build the whole service configuration from live config. * * Called per purchase. Nothing here is cached, and nothing here throws: an * unreadable setting falls back to the safe default rather than taking down a * purchase with a type error, because the budget check downstream is a better * place to stop than a crash in a config reader. */ export declare function readPaymentsServiceConfig(config: PaymentsConfigReader): PaymentsServiceConfig; /** * The owner's merchant overrides, which win in both directions. * * An excluded domain is never major however the judge answers, and an included * one is major without asking. Both are owner-authored, which is what makes * them safe to let override a judgement. */ export declare function readMerchantPolicy(config: PaymentsConfigReader): MerchantPolicy; //# sourceMappingURL=payments-config.d.ts.map