import { ID } from '../../commonStateTypes/common'; import { ZeniDate } from '../../zeniDayJS'; export declare const toAiAccountantOperationType: (v: string) => "onboard" | "offboard" | "retrain" | "evaluate" | "full_pipeline" | "cancel_onboarding"; export type AiAccountantOperationType = ReturnType; export declare const toAiAccountantEnrollmentStatus: (v: string) => "onboarding" | "error" | "pending" | "failed" | "active" | "offboarding" | "offboarded"; export type AiAccountantEnrollmentStatus = ReturnType; export declare const getAllowedOperationsForStatus: (status: string | null | undefined) => AiAccountantOperationType[]; export declare const toAiAccountantJobStatus: (v: string) => "failed" | "completed" | "queued" | "running" | "cancelled" | "retried"; export type AiAccountantJobStatus = ReturnType; export interface AiAccountantEnrollment { status: AiAccountantEnrollmentStatus; accuracy?: Record; latestTraining?: ZeniDate; latestTransactionSync?: ZeniDate; offboardedAt?: ZeniDate; offboardedBy?: ID; onboardedAt?: ZeniDate; onboardedBy?: ID; validationResults?: Array<{ accuracy: number; modelType: string; passed: boolean; threshold: number; }>; } export interface AiAccountantJob { companyId: ID; createdAt: ZeniDate; jobId: ID; operationType: AiAccountantOperationType; status: AiAccountantJobStatus; tenantId: ID; triggeredBy: ID; companyNamespace?: string; completedAt?: ZeniDate; errorMessage?: string; parameters?: Record; retryCount?: number; startedAt?: ZeniDate; steps?: Array>; validationResults?: Array>; } export interface AiAccountantCustomer { companyId: ID; companyName: string; tenantId: ID; bookcloseDate?: ZeniDate; enrollment?: AiAccountantEnrollment; } export interface AiAccountantCustomerState { customerByTenantId: Record; jobsByTenantId: Record; }