export type PaymentResponseState = {
    /**
     * - Current status of the payment
     */
    status: "created" | "started" | "submitted" | "capturable" | "success" | "failed" | "cancelled" | "error";
    /**
     * - Whether the payment process has completed
     */
    finished: boolean;
    /**
     * - Human-readable message about the payment state
     */
    message?: string | undefined;
    /**
     * - Error or status code for the payment state
     */
    code?: string | undefined;
};
export type PaymentLink = {
    /**
     * - URL of the linked resource
     */
    href: string;
    /**
     * - HTTP method to use for the link
     */
    method: string;
};
export type CreatePaymentRequest = {
    /**
     * - Payment amount in pence
     */
    amount: number;
    /**
     * - Unique reference for the payment
     */
    reference: string;
    /**
     * - Human-readable description of the payment
     */
    description: string;
    /**
     * - URL to redirect the user to after payment
     */
    return_url: string;
    /**
     * - Whether to delay capturing the payment
     */
    delayed_capture?: boolean | undefined;
    /**
     * - Additional metadata for the payment
     */
    metadata?: {
        formId: string;
        slug: string;
    } | undefined;
    /**
     * - Email to prepopulate on GOV.UK Pay (max 254 chars)
     */
    email?: string | undefined;
};
export type CreatePaymentResponse = {
    /**
     * - Unique identifier for the created payment
     */
    payment_id: string;
    /**
     * - Current state of the payment
     */
    state: PaymentResponseState;
    /**
     * - HATEOAS links for the payment
     */
    _links: {
        next_url: PaymentLink;
    };
};
/**
 * Base response from GOV.UK Pay GET /v1/payments/{PAYMENT_ID} endpoint
 */
export type GetPaymentResponseBase = {
    /**
     * - Current state of the payment
     */
    state: PaymentResponseState;
    /**
     * - HATEOAS links for the payment
     */
    _links: {
        self: PaymentLink;
        next_url?: PaymentLink;
    };
    /**
     * - The paying user's email address
     */
    email?: string | undefined;
};
/**
 * Response from GOV.UK Pay GET /v1/payments/{PAYMENT_ID} endpoint - not underscore in property name
 */
export type GetPaymentApiResponsePaymentProp = {
    /**
     * - Unique identifier for the payment
     */
    payment_id: string;
    /**
     * - amount of the payment
     */
    amount: number;
};
/**
 * Response from GOV.UK Pay GET /v1/payments/{PAYMENT_ID} endpoint
 */
export type GetPaymentApiResponse = GetPaymentResponseBase & GetPaymentApiResponsePaymentProp;
/**
 * Response returned from getPaymentStatus - subtley different from GetPaymentApiResponse
 */
export type GetPaymentResponsePaymentProp = {
    /**
     * - Unique identifier for the payment - note no underscore in property name
     */
    paymentId: string;
    /**
     * - amount of the payment
     */
    amount: number;
};
/**
 * Response returned from getPaymentStatus - subtley different from GetPaymentApiResponse
 */
export type GetPaymentResponse = GetPaymentResponseBase & GetPaymentResponsePaymentProp;
/**
 * Payment session data stored when dispatching to GOV.UK Pay
 */
export type PaymentSessionData = {
    /**
     * - unique identifier for this payment attempt
     */
    uuid: string;
    /**
     * - id of the form
     */
    formId: string;
    /**
     * - form reference number
     */
    reference: string;
    /**
     * - amount in pounds
     */
    amount: number;
    /**
     * - payment description
     */
    description: string;
    /**
     * - GOV.UK Pay payment ID
     */
    paymentId: string;
    /**
     * - name of the PaymentField component
     */
    componentName: string;
    /**
     * - URL to redirect to after successful payment
     */
    returnUrl: string;
    /**
     * - URL to redirect to after failed/cancelled payment
     */
    failureUrl: string;
    /**
     * - whether the payment is using live API key
     */
    isLivePayment: boolean;
};
