import { FetchStateAndError, FetchedState, ID } from '../../../commonStateTypes/common'; import { Address } from '../../../entity/address/addressState'; import { CompanyOfficerType } from '../../companyView/types/companyPassport/companyUsersLocalData'; import { CompanyDetailsLocalData, CompanyOfficerLocalData, PrimaryContactLocalData, SetupViewLocalData } from '../../spendManagement/commonSetup/setupViewState'; import { PlaidConnectionDetails } from '../../spendManagement/plaidAccount/plaidAccountViewState'; export declare const ZENI_USER_REQUIRED_ONBOARDING_STEPS: readonly ["setup_billing"]; export declare const CUSTOMER_REQUIRED_ONBOARDING_STEPS_WITH_QBO: readonly ["connect_ledger"]; export declare const REQUIRED_ONBOARDING_STEPS: readonly ["setup_billing", "connect_ledger"]; export declare const ALL_ZENI_USER_ONBOARDING_STEPS_WITHOUT_ACCOUNT: readonly ["verification"]; export declare const ALL_ZENI_USER_ONBOARDING_STEPS: readonly ["setup_billing", "verification"]; export declare const ALL_ZENI_USER_BOOKKEEPING_ONBOARDING_STEPS: readonly ["setup_billing", "connect_data_source", "verification"]; export declare const ALL_CUSTOMER_ONBOARDING_STEPS_WITH_QBO: readonly ["connect_ledger", "connect_data_source", "verification"]; export declare const ALL_ONBOARDING_STEPS: readonly ["setup_billing", "connect_ledger", "connect_data_source", "verification"]; export declare const toOnboardingStepType: (v: string) => "setup_billing" | "connect_ledger" | "verification" | "connect_data_source"; export type OnboardingStep = ReturnType; export declare const ALL_ONBOARDING_SUB_STEPS: readonly ["default", "ai-activating", "unlock-stack", "company_officer", "company_details"]; export declare const toOnboardingSubStepType: (v: string) => "default" | "company_details" | "company_officer" | "ai-activating" | "unlock-stack"; export type OnboardingSubStep = ReturnType; /** * Onboarding Custiner View Local Data - Intefaces */ export type OnboardingCustomerViewLocalData = SetupViewLocalData; export interface OnboardingCustomerViewUIState { isCardPaymentPopupOpen: boolean; isQBOPopupOpen: boolean; } export interface OnboardingCustomerViewState extends FetchedState { aiAgentsActivation: AiAgentsActivationSubview; companyDetails: { /** * Field names from {@link CompanyDetailsLocalData} populated by AI autofill * from an uploaded KYB document during onboarding. Drives the ✦ sparkle. */ autoFilledFields: string[]; localData?: CompanyDetailsLocalData; }; companyOfficerUpdateStatus: Record; currentStep: OnboardingStep; currentSubStep: OnboardingSubStep; dashboardLoadedStatus: FetchStateAndError; /** * File IDs currently being parsed by the AI autofill epic for onboarding. * Drives the "AI is reading your document" overlay on the upload field. */ parsingDocumentFileIds: ID[]; paymentAccountDetails: { fetchStatus: FetchStateAndError; paymentAccountIds: ID[]; updateStatus: FetchStateAndError; }; plaidConnectionDetails: PlaidConnectionDetails; primaryContactDetails: { localData?: PrimaryContactLocalData; }; saveStatus: FetchStateAndError; subscriptionPaymentAccountIds: ID[]; uiState: OnboardingCustomerViewUIState; updateStatus: FetchStateAndError; aiActivationViewedAcknowledgementStatus?: FetchStateAndError; aiFinanceTeamAcknowledgementStatus?: FetchStateAndError; subscriptionBillingAddress?: Address; } export type AiAgentsActivationPhaseStatus = 'idle' | 'starting' | 'building' | 'ready'; export interface AiAgentsActivationPhase { key: string; status: AiAgentsActivationPhaseStatus; completedAt?: string; startedAt?: string; } export interface AiAgentsActivationCounts { customerCount: number; glAccountCount: number; targetTransactionCount: number; transactionCount: number; vendorCount: number; asOf?: string; } export interface AiAgentsActivationSubview { counts: AiAgentsActivationCounts; fetchStatus: FetchStateAndError; phases: AiAgentsActivationPhase[]; } export declare const emptyAiAgentsActivationCounts: AiAgentsActivationCounts; export declare const emptyAiAgentsActivationSubview: AiAgentsActivationSubview;