import type { PRODUCT_LIST_FILTER_TYPES } from '@/constants'; import type { ComponentType } from '@/enums'; import type { PLCProductUrl } from '@/interfaces/configs/product-list.interface'; import type { IAddressOptions } from '@/modules/address/address.interface'; export interface IInjectProductElement { containerId: string; identifier: string; } export type ProductListFilterType = (typeof PRODUCT_LIST_FILTER_TYPES)[keyof typeof PRODUCT_LIST_FILTER_TYPES]; export interface IInjectProductListParams { containerId: string; slug: string; rows?: number; columns?: number; filters?: ProductListFilterType[]; productUrl?: PLCProductUrl; } export interface IInjectProductListSearchParams { containerId: string; slug: string; filters?: ProductListFilterType[]; } export interface IInjectProductListFiltersParams { containerId: string; slug: string; filters?: ProductListFilterType[]; } export interface IBuilderInjectElementParams { type: ComponentType; containerId: string; [key: string]: any; } export interface IProcessInjectElementParams { type: ComponentType; containerId: string; identifier?: string; options?: IAddressOptions; checkoutId?: string; hideHeader?: boolean; } export interface IInjectCheckoutParams { containerId: string; checkoutId?: string; hideHeader?: boolean; } export interface IInjectCheckoutBuilderParams extends IInjectCheckoutParams { simulatePresale?: boolean; presaleExpiresInMinutes?: number; }