import { BeneficiaryType, IBeneficiaryAddress } from '../models/Beneficiary'; import { ICurrency } from '../models/Currency'; interface ICountry { code: string; name: string; } interface ITransferBounds { minimum: number; currency: ICurrency; type: BeneficiaryType; } export interface IValidatorProps { required: boolean; optional?: boolean; length: number; allowedCharacters: string; attributes: any[]; } export interface IAddressValidatorProps { length: number; line1: IValidatorProps; line2: IValidatorProps; line3: IValidatorProps; } export interface ICreateBeneficiaryValidatorProps { name: IValidatorProps; nickname?: IValidatorProps; swiftCode?: IValidatorProps; address?: IAddressValidatorProps; branchAddress?: IValidatorProps; branchName?: IValidatorProps; country?: IValidatorProps; phoneNumber?: IValidatorProps; sortCode?: IValidatorProps; } export interface ICreateTransferValidatorProps { remarks?: IValidatorProps; } export interface IValidators { createBeneficiary: { local: ICreateBeneficiaryValidatorProps; same: ICreateBeneficiaryValidatorProps; }; createTransfer: { local: ICreateTransferValidatorProps; same: ICreateTransferValidatorProps; }; } export interface IGetAccountsMetadata { swiftCode: string; sortCode?: string; bankName: string; branchName: string; branchAddress: string; address: IBeneficiaryAddress; transferBounds: Array; beneficiaryCoolDownPeriod: { value: number; unit: 'hrs'; }; transactionRange: { unit: 'days'; value: number; }; country: ICountry; isCreateBeneficiaryEndpointRequired: boolean; willNewlyAddedBeneficiaryExistBeforeCoolDownPeriod: boolean; validators: IValidators; } export {};