import type { VNode } from 'preact';
import type { ExistingLegalEntity } from '../core/models/api/legal-entity';
import { type LegalEntityType } from '../core/models/api/legal-entity-type';
import type { SetupAccountMethod } from '../components/Shared/SingpassSelection/types';
import type { TaskType } from '../stores/globalStore/taskTypes';
import type { AccountHolderOption } from '../types/accountHolder';
import type { CompanyTrustMember, RegularTrustMember, TrustMember } from '../components/Trust/tasks/TrustMembers/types';
import type { NavigateToMemberProps } from '../components/UnincorporatedPartnership/hooks/useUnincorporatedPartnershipNavigation';
import type { UnincorporatedPartnershipMember } from '../components/UnincorporatedPartnership/tasks/UnincorporatedPartnershipMembers/types';
export interface OnboardingRouterProps {
    legalEntity: ExistingLegalEntity;
    rootLegalEntityCountry: string | undefined;
    trust: ExistingLegalEntity | undefined;
    unincorporatedPartnership: ExistingLegalEntity | undefined;
    soleProp: ExistingLegalEntity | undefined;
    associatedLegalRepresentative: ExistingLegalEntity | undefined;
    refetchLegalEntity: () => Promise<unknown>;
    refetchTrust: () => Promise<unknown>;
    refetchUnincorporatedPartnership: () => Promise<unknown>;
    onExternalSubmit?: (data: unknown) => void;
    accountHolder: AccountHolderOption | undefined;
    setAccountHolder: (ah: AccountHolderOption) => void;
    setCanSeeEntitySelection: (v: boolean) => void;
    setHasSeenIntroduction: (v: boolean) => void;
    taskTypes: TaskType[];
    targetLegalEntityType: LegalEntityType | undefined;
    setTargetLegalEntityType: (t: LegalEntityType | undefined) => void;
    trustMember: TrustMember | undefined;
    onNavigateToTrust: (task?: TaskType) => Promise<void>;
    onNavigateToTrustMemberRoleAndType: (tm: TrustMember | 'new') => void;
    onNavigateToTrustMemberEditDetails: (tm: RegularTrustMember | CompanyTrustMember) => Promise<void>;
    unincorporatedPartnershipMember: UnincorporatedPartnershipMember | undefined;
    setActiveMember: (m: UnincorporatedPartnershipMember) => void;
    onNavigateToMember: (props: NavigateToMemberProps) => Promise<void>;
    singpassBanner: VNode | undefined;
    handleSingpassSelectionNextClick: (method: SetupAccountMethod) => Promise<void>;
    openBankingPartnerConfigId?: string;
}
export declare function OnboardingRouter({ legalEntity, rootLegalEntityCountry, trust, unincorporatedPartnership, soleProp, associatedLegalRepresentative, refetchLegalEntity, refetchTrust, refetchUnincorporatedPartnership, onExternalSubmit, accountHolder, setAccountHolder, setCanSeeEntitySelection, setHasSeenIntroduction, taskTypes, targetLegalEntityType, setTargetLegalEntityType, trustMember, onNavigateToTrust, onNavigateToTrustMemberRoleAndType, onNavigateToTrustMemberEditDetails, unincorporatedPartnershipMember, setActiveMember, onNavigateToMember, singpassBanner, handleSingpassSelectionNextClick, openBankingPartnerConfigId, }: OnboardingRouterProps): import("preact/jsx-runtime").JSX.Element;
