import type { PaymentMethodWithSubmitProps } from '../../../@types';
import type { CommonPaymentElementPropTypes } from '../../../propTypes';
import type { ProcessorsType } from '../../../constants';
type FieldConfigurationProps = {
    required?: boolean;
};
type BillingDetailsConfigurationPropTypes = {
    billingAddress1: FieldConfigurationProps;
    billingAddress2: FieldConfigurationProps;
    billingState: FieldConfigurationProps;
    billingCity: FieldConfigurationProps;
    billingZip: FieldConfigurationProps;
    billingCountry: FieldConfigurationProps;
    billingEmail: FieldConfigurationProps;
    billingFirstName: FieldConfigurationProps;
    billingLastName: FieldConfigurationProps;
    billingName: FieldConfigurationProps;
    billingBirthday: FieldConfigurationProps;
    billingDocumentNumber: FieldConfigurationProps;
    billingDocumentType: FieldConfigurationProps;
    billingTaxId: FieldConfigurationProps;
    billingCompany: FieldConfigurationProps;
    billingPhone: FieldConfigurationProps;
    billingFax: FieldConfigurationProps;
};
type ContactInformationConfigurationPropTypes = {
    firstName: FieldConfigurationProps;
    lastName: FieldConfigurationProps;
};
type CreditCardPropTypes = CommonPaymentElementPropTypes & {
    mode: 'live' | 'test';
    processor: ProcessorsType;
    billingConfig?: BillingDetailsConfigurationPropTypes;
    contactInformationConfig?: ContactInformationConfigurationPropTypes;
};
export type CreditCardFormProps = PaymentMethodWithSubmitProps<CreditCardPropTypes>;
export interface CreditCardFormResponse {
    token?: string;
    cardNumber?: string;
    cardholder?: string;
    expiry?: string;
    cvc?: string;
    billingDetails?: Record<string, string>;
}
export {};
