import { FiatAccountSchema, FiatAccountSchemas } from '@fiatconnect/fiatconnect-types' import { KeyboardType } from 'react-native' export interface FormFieldParam { name: string label?: string | null infoDialog?: { title: string actionText: string body: string } format?(input: string): string validate( input: string, fieldNamesToValues?: Record ): { isValid: boolean errorMessage?: string } placeholderText: string keyboardType: KeyboardType isVisible?(fieldNamesToValues: Record): boolean } export interface ImplicitParam { name: string value: T[K] } export interface ComputedParam { name: string computeValue: (otherFields: Partial) => T[K] } export type FiatAccountFormSchema = { [Property in keyof FiatAccountSchemas[T]]: | FormFieldParam | ImplicitParam | ComputedParam }