import { QuestionnaireState } from 'types/QuestionnaireState'; import { QuestionnaireProp } from '../types'; /** * Minimal state shape that getDerivedState reads. DescriptorState satisfies it * directly; transform/validation callers wrap their args as * `{ fields, config: { questionnaire } }`. */ export type DerivedStateInput = { fields?: QuestionnaireState; config?: { questionnaire?: QuestionnaireProp; }; }; export declare const getDerivedState: (state?: DerivedStateInput) => DerivedStateResult; type DerivedStateResult = ReturnType; declare const computeFieldsState: (fields: QuestionnaireState, questionnaire: QuestionnaireProp | undefined) => { hasNoEuTaxId: boolean; hasEuResidence: boolean; hasAuResidence: boolean; hasControllingPerson1: boolean; hasControllingPerson2: boolean; hasControllingPerson3: boolean; hasControllingPerson4: boolean; hasControllingPerson5: boolean; requiresControllingPersons: boolean; isAccountOwnerEntity: boolean; isBuildingW9: boolean; isBuildingW8: boolean; isBuildingW8Ben: boolean; isBuildingW8BenE: boolean; isBuildingWForm: boolean; isBuildingW8IMY: boolean; w8ImyIntermediary: { isQualifiedIntermediary: boolean; isNonQualifiedIntermediary: boolean; isTerritoryFinancialInstitution: boolean; isUsBranch: boolean; isWithholdingForeignPartnership: boolean; isWithholdingForeignTrust: boolean; isNonwithholdingForeignPartnership: boolean; isNonwithholdingForeignSimpleTrust: boolean; isNonwithholdingForeignGrantorTrust: boolean; }; isDre: boolean; isIndividual: boolean; isMakingTreatyClaim: boolean; phoneNumberValue: string | undefined; phoneNumberValueFormatted: string | undefined; residenceCountryCodes: string[]; getResidences: (prefix: "accountHolder" | "controllingPerson1" | "controllingPerson2" | "controllingPerson3" | "controllingPerson4" | "controllingPerson5") => { country: string | undefined; tin: string | undefined; tinNotRequired: "yes" | undefined; }[]; hasHighRiskTaxResidenciesOnly: (prefix: "accountHolder" | "controllingPerson1" | "controllingPerson2" | "controllingPerson3" | "controllingPerson4" | "controllingPerson5") => boolean; accountHolderIntermediaryWhereUsTinIsRequired: boolean; accountHolderTreatyClaim: boolean; accountHolderUsTinRequiredSpecialSituations: boolean; regardedOwnerUsTinRequiredSpecialSituations: boolean; }; export {};