import React, { ReactNode, RefObject } from 'react';
import { UseValidatedFormReturn } from '../Components/ValidatedForm';
import z from 'zod';
declare const VGSPaymentSchema: z.ZodObject<{
    'credit-card': z.ZodOptional<z.ZodNullable<z.ZodString>>;
    'security-code': z.ZodOptional<z.ZodNullable<z.ZodString>>;
    cardExpiry: z.ZodString;
    cardHolder: z.ZodString;
    cardType: z.ZodString;
}, z.core.$strip>;
export type VGSPaymentForm = z.infer<typeof VGSPaymentSchema>;
interface VGSPaymentContextType {
    form: UseValidatedFormReturn<VGSPaymentForm, unknown, VGSPaymentForm>;
    ref?: RefObject<HTMLDivElement | null>;
    setRef: (ref: RefObject<HTMLDivElement | null>) => void;
    validate: () => Promise<boolean>;
    isValid: boolean;
    setIsValid: (value: boolean) => void;
    submit: () => void;
    isSubmitting: boolean;
    setIsSubmitting: (value: boolean) => void;
    isSubmitted: boolean;
    setIsSubmitted: (value: boolean) => void;
}
/**
 * Context provider for the VGS Payment form. This wrapper also ensures the VGSPaymentProvider is wrapped in a VGSCollectProvider.
 */
export declare function VGSPaymentWrapper({ children }: {
    children: ReactNode;
}): React.JSX.Element;
export declare const useVGSPayment: () => VGSPaymentContextType;
export {};
