import type { ComponentChildren } from 'preact'; /** * Experiments which are returned from a call made to onboardingcomponents for feature flags and experiments (see `useToggles`). * Experiments are used to toggle behavior for A/B testing purposes. * Defined using the Experimentation Platform in BO. * * Naming convention: `${ExperimentName}_${TreatmentGroupNameOrControl}` ex. `BankingVerificationExperiment_Treatment1` or `BusinessSearchExperiment_control` */ export declare const ExperimentNames: { /** * OXP-7319: Experiment with Forced Manual Payout Flow */ readonly BankingPayoutFlow_ForcedManualVerification: "BankingPayoutFlow_ForcedManualVerification"; }; export declare const FeatureNames: { /** * LXP-8526: Shared toggle for AMLR features in the v5 release. */ readonly EnableAMLRFeaturesV5: "EnableAMLRFeaturesV5"; /** * */ readonly EnableAgeVerification: "EnableAgeVerification"; /** * Allows users to specify a 'Country of Governing Law' for UK companies * within Business Details Task */ readonly EnableCountryOfGoverningLawForUKCompanies: "EnableCountryOfGoverningLawForUKCompanies"; /** * */ readonly EnableDoingBusinessAsNameV4: "EnableDoingBusinessAsNameV4"; /** * */ readonly EnableFinancialInformationComponentV4: "EnableFinancialInformationComponentV4"; /** * */ readonly EnableNationalitySGHK: "EnableNationalitySGHK"; /** * */ readonly EnableRegistrationAndTaxAbsentStatesV4: "EnableRegistrationAndTaxAbsentStatesV4"; /** * OXP-7814: Allows businesses to declare that their registered business address * is a personal address or PO box */ readonly EnableResidentialAddressIndicator: "EnableResidentialAddressIndicator"; /** * */ readonly ShowCustomerSupportV4: "ShowCustomerSupportV4"; /** * */ readonly StrictNameAndAddressValidationV4: "StrictNameAndAddressValidationV4"; /** * OXP-7861: Enable Global Entry Flow */ readonly EnableGlobalEntryFlow: "EnableGlobalEntryFlow"; /** * Enable the CAAS bank account check for Mexican bank accounts. */ readonly EnableBankAccountCheckForMexico: "EnableBankAccountCheckForMexico"; /** * OXP-6596: Enable Bank Document Classification in HO */ readonly EnableBankDocumentClassification: "EnableBankDocumentClassification"; /** * OXP-6032: Enable editing a single business line */ readonly EnableDeleteBusinessLines: "EnableDeleteBusinessLines"; /** * OXP-6799: Enable limit to a single business line */ readonly EnableLimitToSingleBusinessLine: "EnableLimitToSingleBusinessLine"; /** * OXP-6032: Enable editing a single business line */ readonly EnableModifyBusinessLines: "EnableModifyBusinessLines"; /** * Enable "Verify by Invite" flow for decision makers in Identity Verification */ readonly EnableVerifyByInvite: "EnableVerifyByInvite"; /** OXP-6566: Create new payout intro screen */ readonly EnableBankAccountDetailsLandingPage: "EnableBankAccountDetailsLandingPage"; /** Enable AWE generated UI for PoC */ readonly EnableAdaptivePoc: "EnableAdaptivePoc"; /** * OXP-7836: Enable bank account type selection for US payout details */ readonly EnableUSBankAccountTypeSelection: "EnableUSBankAccountTypeSelection"; /** * Show the save-for-later button (in tasks that use it) */ readonly EnableHOSaveForLater: "EnableHOSaveForLater"; /** * LXP-8520 Enable business lines in Hosted Onboarding by default for EFP customers */ readonly EnableEfpBusinessLinesByDefault: "EnableEfpBusinessLinesByDefault"; /** * Show the "Payment methods" task in the task list to * provision payment methods. */ readonly EnableProvisioningPaymentMethods: "EnableProvisioningPaymentMethods"; /** * LXP-8366 Enable the BBA upgrade UI when `issueBankAccount` is the only invalid capability */ readonly EnableBusinessBankAccountUpgradeUi: "EnableBusinessBankAccountUpgradeUi"; /** * Old features */ readonly AllowMoreRolesForMainRootTrustee: "AllowMoreRolesForMainRootTrustee"; readonly EnablePhoneFieldScenario: "EnablePhoneFieldScenario"; readonly ShowUnsupportedEntityType: "ShowUnsupportedEntityType"; }; export type ExperimentName = (typeof ExperimentNames)[keyof typeof ExperimentNames]; export type Experiments = { [key in ExperimentName]?: boolean; }; export type FeatureName = (typeof FeatureNames)[keyof typeof FeatureNames]; export type Features = { [key in FeatureName]?: boolean; }; export interface ToggleProps { children?: ComponentChildren; features: Features & Experiments; refreshExperiments?: () => void; } export interface ToggleContextValue { features: Features; isFeatureEnabled(key: FeatureName): boolean; experiments: Experiments; isExperimentEnabled(key: ExperimentName): boolean; refreshExperiments?: () => void; }