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 = (configuration: { scenarios: Scenario[]; taskList?: TaskType[]; provider?: BankVerificationVendor; bankVerificationProviders?: Partial>; requiredFields: AccountFormatRequirements | undefined; bankVerificationAvailable?: boolean; country: CountryCode; }) => FormConfiguration; interface UseScenarioConfigurationOptions { parseConfiguration: ParseConfiguration; country: CountryCode; legalEntityType: LegalEntityType; setLoadingStatus: Dispatch>; getPayoutAccountFormatData?: () => Promise; instantVerificationAvailable?: boolean; existingBankAccountFormat?: BankAccountFormatType; } interface ScenarioConfiguration { fieldConfigurations: FormConfiguration | undefined; requiredFields: AccountFormatRequirements | undefined; } export declare const useScenarioConfiguration: ({ getPayoutAccountFormatData, parseConfiguration, country, legalEntityType, instantVerificationAvailable, setLoadingStatus, existingBankAccountFormat, }: UseScenarioConfigurationOptions) => ScenarioConfiguration; export {};