export class PaymentService {
    /**
     * @param {string} apiKey - API key to use (global config for test value, per-form config for live value)
     */
    constructor(apiKey: string);
    /**
     * Creates a payment with delayed capture (pre-authorisation)
     * @param {number} amount - in pence
     * @param {string} description
     * @param {string} returnUrl
     * @param {string} reference
     * @param {boolean} isLivePayment
     * @param {{ formId: string, slug: string } | undefined } metadata
     * @param {string} [email] - optional email to prepopulate on GOV.UK Pay
     */
    createPayment(amount: number, description: string, returnUrl: string, reference: string, isLivePayment: boolean, metadata: {
        formId: string;
        slug: string;
    } | undefined, email?: string): Promise<{
        paymentId: string;
        paymentUrl: string;
    } | undefined>;
    /**
     * @param {string} paymentId
     * @param {boolean} isLivePayment
     * @returns {Promise<GetPaymentResponse>}
     */
    getPaymentStatus(paymentId: string, isLivePayment: boolean): Promise<GetPaymentResponse>;
    /**
     * Captures a payment that is in 'capturable' status
     * @param {string} paymentId
     * @param {number} amount
     * @returns {Promise<boolean>}
     */
    capturePayment(paymentId: string, amount: number): Promise<boolean>;
    /**
     * @param {CreatePaymentRequest} payload
     */
    postToPayProvider(payload: CreatePaymentRequest): Promise<CreatePaymentResponse>;
    #private;
}
import type { GetPaymentResponse } from '../../../server/plugins/payment/types.js';
import type { CreatePaymentRequest } from '../../../server/plugins/payment/types.js';
import type { CreatePaymentResponse } from '../../../server/plugins/payment/types.js';
