import { UUID } from "crypto"; // Re-export interfaces needed for RawJobDataObject // Note: The decoder interfaces would need to be moved to shared as well // or we define the minimal structure here export interface RawJobDataObject { // From DecodedEnv insp_date?: string; loss_date?: string; rf_city?: string; rf_zip?: string; rf_st?: string; rf_ln?: string; rf_fn?: string; rf_ph1?: string; rf_ph2?: string; rf_addr1?: string; rf_ctry?: string; ins_co_nm?: string; clm_no?: string; est_system?: string; // From other decoders cat_no?: string; ciecaid?: string; agt_co_id?: string; agt_co_nm?: string; agt_addr1?: string; agt_addr2?: string; agt_city?: string; agt_st?: string; agt_zip?: string; agt_ctry?: string; agt_ph1?: string; agt_ph1x?: string; agt_ph2?: string; agt_ph2x?: string; agt_fax?: string; agt_faxx?: string; agt_ct_ln?: string; agt_ct_fn?: string; agt_ct_ph?: string; agt_ct_phx?: string; agt_ea?: string; agt_lic_no?: string; adj_g_disc?: number; adj_strdis?: number; adj_towdis?: number; asgn_date?: string; asgn_no?: string; asgn_type?: string; clm_addr1?: string; clm_addr2?: string; clm_city?: string; clm_ct_fn?: string; clm_ct_ln?: string; clm_ct_ph?: string; clm_ct_phx?: string; clm_ctry?: string; clm_ea?: string; clm_fax?: string; clm_faxx?: string; clm_ofc_id?: string; clm_ofc_nm?: string; clm_ph1?: string; clm_ph1x?: string; clm_ph2?: string; clm_ph2x?: string; clm_st?: string; clm_title?: string; clm_zip?: string; cust_pr?: string; date_estimated?: string; ded_status?: string; depreciation_taxes?: number; est_addr1?: string; est_addr2?: string; est_city?: string; est_co_nm?: string; est_ct_fn?: string; est_ct_ln?: string; est_ctry?: string; est_ea?: string; est_ph1?: string; est_st?: string; est_zip?: string; federal_tax_rate?: number; ins_addr1?: string; ins_addr2?: string; ins_city?: string; ins_co_id?: string; ins_ct_fn?: string; ins_ct_ln?: string; ins_ct_ph?: string; ins_ct_phx?: string; ins_ctry?: string; ins_ea?: string; ins_fax?: string; ins_faxx?: string; ins_ph1?: string; ins_ph1x?: string; ins_ph2?: string; ins_ph2x?: string; ins_st?: string; ins_title?: string; ins_zip?: string; insd_fax?: string; insd_faxx?: string; kmin?: number; loss_cat?: string; loss_type?: string; ownr_addr1?: string; ownr_addr2?: string; ownr_co_nm?: string; ownr_ctry?: string; ownr_ea?: string; ownr_ph1?: string; ownr_ph2?: string; ownr_st?: string; ownr_title?: string; ownr_zip?: string; ownr_ln?: string; ownr_fn?: string; ownr_city?: string; pay_amt?: number; pay_chknm?: string; pay_date?: string; pay_type?: string; payee_nms?: string; plate_no?: string; plate_st?: string; policy_no?: string; rate_la1?: number; rate_la2?: number; rate_la3?: number; rate_la4?: number; rate_laa?: number; rate_lab?: number; rate_lad?: number; rate_lae?: number; rate_laf?: number; rate_lag?: number; rate_lam?: number; rate_lar?: number; rate_las?: number; rate_lau?: number; rate_ma2s?: number; rate_ma2t?: number; rate_ma3s?: number; rate_mabl?: number; rate_macs?: number; rate_mahw?: number; rate_mapa?: number; rate_mash?: number; tax_lbr_rt?: number; tax_levies_rt?: number; tax_paint_mat_rt?: number; tax_predis?: number; tax_prethr?: number; tax_pstthr?: number; tax_shop_mat_rt?: number; tax_str_rt?: number; tax_sub_rt?: number; tax_thramt?: number; tax_tow_rt?: number; theft_ind?: boolean; v_color?: string; tlos_ind?: boolean; v_make_desc?: string; v_model_desc?: string; v_year?: string; // Claimant fields clmt_ln?: string; clmt_fn?: string; clmt_title?: string; clmt_co_nm?: string; clmt_addr1?: string; clmt_addr2?: string; clmt_city?: string; clmt_st?: string; clmt_zip?: string; clmt_ctry?: string; clmt_ph1?: string; clmt_ph2?: string; clmt_ea?: string; // Insured fields insd_ln?: string; insd_fn?: string; insd_title?: string; insd_co_nm?: string; insd_addr1?: string; insd_addr2?: string; insd_city?: string; insd_st?: string; insd_zip?: string; insd_ctry?: string; insd_ph1?: string; insd_ph2?: string; insd_ea?: string; // Object fields owner?: { data?: Record; }; vehicle?: Record; bodyshop?: Record; area_of_damage?: { impact1?: string; impact2?: string; }; joblines?: { data?: JobLine[]; }; clm_total?: number; // CIECA fields cieca_pft?: CiecaPft; cieca_pfl?: Record; cieca_pfm?: CiecaPfm[]; cieca_pfo?: CiecaPfo; cieca_stl?: CiecaStl; cieca_ttl?: CiecaTtl; parts_tax_rates?: Record; materials?: Record; vehicleid?: UUID; shopid?: UUID; version?: number; } export interface JobLine { line_no?: string; line_ind?: string; line_ref?: string; tran_code?: string; db_ref?: string; unq_seq?: string; line_desc?: string; part_type?: string; glass_flag?: boolean; oem_partno?: string; price_inc?: boolean; alt_part_i?: boolean; tax_part?: boolean; db_price?: number; act_price?: number; price_j?: boolean; cert_part?: boolean; part_qty?: number; alt_co_id?: string; alt_partno?: string; alt_overrd?: boolean; alt_partm?: string; prt_dsmk_p?: string; prt_dsmk_m?: string; mod_lbr_ty?: string; db_hrs?: number; mod_lb_hrs?: number; lbr_inc?: boolean; lbr_op?: string; lbr_hrs_j?: boolean; lbr_typ_j?: boolean; lbr_op_j?: boolean; paint_stg?: string; paint_tone?: string; lbr_tax?: boolean; lbr_amt?: number; misc_amt?: number; misc_sublt?: string; misc_tax?: boolean; bett_type?: string; bett_pctg?: string | number; bett_amt?: number; bett_tax?: boolean; op_code_desc?: string; } export interface CiecaPft { data?: Record; } export interface CiecaPfl { lbr_desc?: string; lbr_rate?: number; lbr_type?: string; } export interface CiecaPfm { cal_prethr?: number; matl_type?: string; } export interface CiecaPfo { data?: Record; } export interface CiecaStl { data?: Array<{ nt_hrs?: number; t_amt?: number; t_hrs?: number; ttl_typecd?: string; }>; } export interface CiecaTtl { data?: { supp_amt?: number; }; }