import { type PaymentPolicy } from "@voyant-travel/finance/payment-policy";
import * as React from "react";
/**
* Reusable payment-policy editor.
*
* Renders the deposit kind toggle (None / Percent / Fixed amount), the
* conditional deposit value input, and the three day-window controls
* (deposit gate, balance offset, balance grace). When `inheritable`
* is true (the default for non-operator-default layers), an "Inherit
* from parent" toggle is shown — flipping it on writes `null` and
* disables the rest of the form.
*
* Controlled component: parent owns the value via `value` / `onChange`.
* The bundled `` reads the same value so you
* can render the live preview alongside the form.
*/
export interface PaymentPolicyFormProps {
/** Current value. `null` means "inherit from parent". */
value: PaymentPolicy | null;
onChange: (next: PaymentPolicy | null) => void;
/**
* When true, shows the "Inherit from parent" toggle. Operator-
* default forms set this to false (no parent to inherit from).
*/
inheritable?: boolean;
/** Currency used for the fixed-amount deposit input + the preview. */
currency?: string;
/** Disabled by ancestor (e.g. while the mutation is in flight). */
disabled?: boolean;
className?: string;
}
export declare function PaymentPolicyForm({ value, onChange, inheritable, currency, disabled, className, }: PaymentPolicyFormProps): React.ReactElement;
/**
* Live preview of what the policy will produce on a sample booking.
* Pair with `` so the operator sees the
* deposit + balance amounts shift in real time as they tweak the
* fields.
*/
export interface PaymentPolicyPreviewProps {
policy: PaymentPolicy | null;
currency?: string;
/** Total used for the preview math. Default 1,000.00 in major units. */
sampleTotalCents?: number;
/** Days before departure to use for the preview. Default 60. */
sampleDaysBeforeDeparture?: number;
className?: string;
}
export declare function PaymentPolicyPreview({ policy, currency, sampleTotalCents, sampleDaysBeforeDeparture, className, }: PaymentPolicyPreviewProps): React.ReactElement;