import { OnsiteCoreWindow } from "@mailbiz/onsite-core"; //#region [Window] interface FastcommerceWindow extends OnsiteCoreWindow { aProductOnlyOneGrid?: string[]; aProductListGrid?: string[]; F$?: Partial; FC$?: FastcommerceContext; // FCLib$?: {}; dataLayerGTM?: DataLayerGtmEntry[]; iValorCesta?: number; } //#endregion //#region [Global contexts] interface FastContext { OldIE: boolean; FreightValue: string; IDFreight: any; FreightType: any; CEPEnvio: string; EnderecoEnvio: any; EnderecoNumEnvio: any; CidadeEnvio: any; EstadoEnvio: any; PaisEnvio: any; TelefoneEnvio: any; IsBrazil: string; IsCheckEntregaInverso: boolean; bPresente: boolean; bValidForm: boolean; FirstErrField: any; FirstErrMsg: any; aFieldErrors: {}; MinErrorAlert: number; PaymentType: any; Step: string; iLastError: string; TotalProds: any; TotalCart: any; TotalPackage: any; MaxParcOrder: any; CmdChkReadCart: number; CmdChkFreight: number; CmdChkPayment: number; CmdChkRegister: number; CmdChkCC: number; CmdChkLogin: number; CmdChkUpdate: number; CmdChkPlugin: number; bPlugin: boolean; IsWaiting: boolean; TimePleaseWaitMsg: number; FooterHeight: number; oExtAll: {}; oWaitingAll: {}; } interface FastcommerceContext { IDLoja: number; isTest: boolean; TypeRWD: number; TypeFrt: number; TypeApp: string; PartnerID: number; CouponID: number; ClientID: number; PathPrd: string; PathImg: string; PathHtm: string; PathPrdExt: string; Page: string; GA: string; GTM: string; LazyLoad: number; CartOnPage: number; FBPixelCode: string; PinterestTagID: string; GoogleSigninID: string; FacebookSigninID: string; Language: number; LanguageCountry: string; isEH: boolean; Mobile: boolean; StockControl: boolean; Wishlist: number; query: string; Currency: string; Step: string; NextStep: string; } //#endregion //#region [Data Layer] type DataLayerGtmProductEntry = DataLayerGtmCartEntry | DataLayerGtmOrderEntry; type DataLayerGtmEntry = DataLayerGtmViewCheckoutEntry | DataLayerGtmProductEntry; type DataLayerGtmCartEntry = { pageType: string; event: string; mobile: boolean; prodId: Array; prodIdParent: Array; prodSKU: Array; prodName: Array; prodCat: Array; prodPrice: Array; prodQty: Array; ecommerce: { add: { products: Array<{ name: string; id: string; price: string; category: string; quantity: number; }>; }; checkout: { actionField: { step: string; }; }; }; email: string; "gtm.uniqueEventId": number; }; type DataLayerGtmOrderEntry = { event: string; pageType: string; prodId: Array; prodIdParent: Array; prodSKU: Array; prodName: Array; prodCat: Array; prodPrice: Array; prodQty: Array; email: string; orderNumber: number; orderTotal: number; orderTotalExcShipping: number; orderShipping: number; ecommerce: { purchase: { actionField: { id: string; affiliation: string; revenue: string; tax: string; shipping: string; coupon: string; }; products: Array<{ name: string; id: string; price: string; category: string; quantity: number; }>; }; }; "gtm.uniqueEventId": number; }; type DataLayerGtmViewCheckoutEntry = { pageType: string; event: string; mobile: boolean; email: string; "gtm.uniqueEventId": number; }; declare global { interface Window extends FastcommerceWindow { } }