import { IVGSVaultNames } from '../models/Client/Hotel/Hotel';
import { ECardType } from '../models/PaymentCard';
declare global {
    interface Window {
        VGSCollect: any;
    }
}
type VGSVaultType = keyof IVGSVaultNames;
type UseVgsShowProps = {
    name: string;
    value?: string;
    styles?: Record<string, any>;
    vaultType?: VGSVaultType;
};
/**
 * TODO: This only works for the Members vault right now
 *
 * Need to:
 * - Update the serializer
 * - Handle errors better
 */
export declare const useVgsShow: (props: UseVgsShowProps) => {
    targetRef: import("react").MutableRefObject<HTMLElement | null>;
    isLoading: boolean;
};
type VGSCollectProps = {
    name: string;
    type: 'card-expiration-date' | 'text' | 'card-number' | 'card-security-code';
    label: string;
    vgsProps: {
        validations?: ('required' | 'validCardNumber' | 'validCardExpirationDate' | 'validCardSecurityCode')[];
        disabled?: boolean;
        css: object;
        placeholder?: string;
        [name: string]: any;
    };
};
type VGSCollectInputState = {
    name: string;
    label: string;
    type: string;
    isFocused: boolean;
    isValid: boolean;
    vgsInput: any;
    cardType?: ECardType;
};
export declare const useVgsCollect: (fields: VGSCollectProps[], vaultType?: VGSVaultType) => {
    fields: {
        ref: import("react").MutableRefObject<HTMLDivElement | null>;
        state: VGSCollectInputState;
        getClasses: (extendedClasses?: string) => string;
    }[];
    triggerFieldUpdate: () => void;
    vgsForm: any;
};
export {};
