import { Region } from '../../services/api.ts'; export type UsTinValidationStatus = 'invalidTin' | 'validTin' | 'pendingTin'; export type UsTinValidationAttempt = { name: string | undefined; usTin: string | undefined; status: UsTinValidationStatus; attemptCount: number; }; export type UsTinServerStatus = 'PENDING' | 'FOREIGN' | 'INVALID_DATA' | 'VALID_SSN_MATCH' | 'VALID_EIN_MATCH' | 'VALID_SSN_EIN_MATCH' | 'MISMATCH' | 'TIN_NOT_ISSUED' | 'ERROR'; export declare const MAX_US_TIN_VALIDATION_ATTEMPTS = 3; type UseUsTinValidationProps = { bearerToken?: string; isEnabled?: boolean; staging?: boolean; region?: Region; proxyDomain?: string; proxyHeaders?: Record; }; type ValidationResult = { id: string; legal_name: string; tin: string; status: UsTinServerStatus; validation_date: string; }; export declare const normalizeStatus: (status: ValidationResult["status"]) => UsTinValidationStatus; export declare const fetchDemoStatus: (usTin: string) => Promise; export declare const findDuplicateAttempt: (attempts: UsTinValidationAttempt[], name: string, usTin: string) => UsTinValidationAttempt | undefined; export type ValidationAction = { type: 'skip'; } | { type: 'increment'; } | { type: 'cache'; status: UsTinValidationStatus; } | { type: 'fetch'; }; export declare const resolveValidationAction: (isEnabled: boolean | undefined, attempts: UsTinValidationAttempt[], name: string, usTin: string) => ValidationAction; export declare const useUsTinValidation: ({ bearerToken, isEnabled, staging, region, proxyDomain, proxyHeaders, }: UseUsTinValidationProps) => { doValidateUsTin: (name: string, usTin: string) => Promise; isValidatingUsTin: boolean; usTinValidations: UsTinValidationAttempt[]; incrementValidationAttempt: (name: string, usTin: string) => void; }; export {};