// Copyright © 2022 Olo Inc. All rights reserved.
// This software is made available under the Olo Pay SDK License (See LICENSE.md file)
import type { NativeSyntheticEvent, ViewProps } from 'react-native';
import type {
  CardValidationStatus,
  FontWeight,
  PaymentCardDetailsPlaceholders,
  PaymentMethodResult,
} from '../../definitions';

export interface PaymentCardDetailsNativeFormStyles {
  backgroundColor?: string;
  borderColor?: string;
  cornerRadius?: number;
  borderWidth?: number;
  textPaddingLeft?: number;
  textPaddingRight?: number;
  cursorColor?: string;
  fieldDividerWidth?: number;
  fieldDividerColor?: string;
  cardElevation?: number;
  textColor?: string;
  placeholderColor?: string;
  focusedPlaceholderColor?: string;
  fontSize?: number;
  fontFamily?: string;
  fontWeight?: FontWeight;
  italic?: boolean;
}

export interface CardDetailsNativeProps extends ViewProps {
  cardStyles?: PaymentCardDetailsNativeFormStyles;
  isEnabled?: boolean;
  onFormCompleteEvent(event: NativeSyntheticEvent<CardValidationStatus>): void;
  onPaymentMethodResultEvent?(event: NativeSyntheticEvent<PaymentMethodResult>): void;
  placeholders?: PaymentCardDetailsPlaceholders;
}
