@adyen/kyc-components
Version:
This guide assumes that you have already an account with Adyen. A legalEntity needs to be created, and you need to have a `legalEntityId` to instatiate a Component.
36 lines (35 loc) • 2.25 kB
TypeScript
import type { Dispatch, StateUpdater } from 'preact/hooks';
import type { Scenario } from '../api/configurations/configurations.types';
import type { BankVerificationVendor } from '../api/transferInstruments/transferInstruments.types';
import type { LoadingStatus } from '../components/ui/atoms/LoaderWrapper/constants';
import type { TopLevelDataSchema } from '../context/StateContext/types';
import type { AccountFormatRequirements, PayoutAccountFormats } from '../datasets/generators/getAccountFormatForCountry';
import type { LegalEntityType } from '../core/models/api/legal-entity-type';
import type { TaskType } from '../stores/globalStore/taskTypes';
import type { CountryCode } from '../types/datasets/country-code';
import type { FormConfiguration } from '../types/form-configuration';
import type { BankAccountFormatType } from '../components/BankAccount/fields/BankAccountFormat/types';
export type ParseConfiguration<TLDS extends TopLevelDataSchema> = (configuration: {
scenarios: Scenario[];
taskList?: TaskType[];
provider?: BankVerificationVendor;
bankVerificationProviders?: Partial<Record<CountryCode, string>>;
requiredFields: AccountFormatRequirements | undefined;
bankVerificationAvailable?: boolean;
country: CountryCode;
}) => FormConfiguration<TLDS, string>;
interface UseScenarioConfigurationOptions<TLDS extends TopLevelDataSchema> {
parseConfiguration: ParseConfiguration<TLDS>;
country: CountryCode;
legalEntityType: LegalEntityType;
setLoadingStatus: Dispatch<StateUpdater<LoadingStatus>>;
getPayoutAccountFormatData?: () => Promise<PayoutAccountFormats>;
instantVerificationAvailable?: boolean;
existingBankAccountFormat?: BankAccountFormatType;
}
interface ScenarioConfiguration<TLDS extends TopLevelDataSchema> {
fieldConfigurations: FormConfiguration<TLDS, string> | undefined;
requiredFields: AccountFormatRequirements | undefined;
}
export declare const useScenarioConfiguration: <TLDS extends TopLevelDataSchema>({ getPayoutAccountFormatData, parseConfiguration, country, legalEntityType, instantVerificationAvailable, setLoadingStatus, existingBankAccountFormat, }: UseScenarioConfigurationOptions<TLDS>) => ScenarioConfiguration<TLDS>;
export {};