import { ApiResponse } from '../../shared/types/api.types.ts'; export declare enum AccountProduct { ACCOUNT_IN_SOUMS = "1", DEPOSIT_BUSINESS = "12", DEPOSIT_OVERNIGHT = "13", CREDIT_SELLERS = "15" } export declare enum AccountFormEvent { SUBMIT = 0, ERROR_RESPONSE = 1, SUCCESS_RESPONSE = 2, FINALLY_RESPONSE = 3, VALIDATE = 4, BLUR = 5, TOGGLE_TIN_OR_PINFL = 6, TOGGLE_ACCEPT_CHECKBOX = 7 } export interface AccountFormEventPayloadsMap { [AccountFormEvent.SUBMIT]: AccountApplication; [AccountFormEvent.ERROR_RESPONSE]: AccountApplication; [AccountFormEvent.FINALLY_RESPONSE]: AccountApplication; [AccountFormEvent.SUCCESS_RESPONSE]: AccountApplication; [AccountFormEvent.VALIDATE]: AccountApplicationFormValidationResult; [AccountFormEvent.BLUR]: AccountApplicationFieldBlurResult; [AccountFormEvent.TOGGLE_TIN_OR_PINFL]: boolean; [AccountFormEvent.TOGGLE_ACCEPT_CHECKBOX]: boolean; } export interface AccountApplicationUtm { utm_source?: string; utm_medium?: string; utm_campaign?: string; utm_content?: string; utm_term?: string; } export interface AccountApplicationForm { innOrPinfl: string; name: string; phone: string; source: number; product: AccountProduct | null; acceptCheckbox: boolean; hideTINOrPINFL?: boolean; sendText?: string; } export interface AccountApplication extends AccountApplicationUtm, Omit { } export interface AccountApplicationValidationValue { validated: boolean; errorMessage: string; } export interface AccountApplicationFormValidationResult { application: AccountApplication; validationResult: AccountApplicationFormValidation; } export interface AccountApplicationFieldBlurResult extends AccountApplicationFormValidationResult { triggeredField: keyof AccountApplicationForm; } export type AccountApplicationFormValidation = { [P in keyof AccountApplicationForm]: AccountApplicationValidationValue; }; export type AccountFormListener = (payload: AccountFormEventPayloadsMap[K]) => void; export type AccountFormOnRequest = (payload: AccountApplication) => Promise; export type AccountFormOnResponse = (response: ApiResponse) => void; export interface ELMAResponse { error: ELMAResponseError; result: ELMAResponseResult; } export interface ELMAResponseError { statusCode: number; message: string | null; type: string | null; params: Record | null; } export interface ELMAResponseResult { isConsultationRequestCreated: boolean; userId: number; userName: string | null; accessToken: string | null; refreshToken: string | null; needConfirm: boolean; confirmToken: string | null; confirmPhone: string | null; confirmEmail: string | null; }