interface Product { id: number; title: string; sort?: number; category: Array<{ id: number; name: string; icon?: string; slug: string; sort: number; }>; [key: string]: any; } interface CategoryItem { __typename: 'category'; id: number; name: string; icon?: string; slug: string; sort: number; } interface ProductItem extends Product { __typename?: 'product'; } declare type ListItem = CategoryItem | ProductItem; /** * 按目录对商品进行分组,产出平级的数据结构用于虚拟列表渲染 * @param products 商品列表 * @returns 包含目录项和商品项的平级数组 */ export declare function groupProductsByCategory(products: Product[]): ListItem[]; /** * 根据传入的元素标识符获取DOM元素 * @param elementIdentifier 元素标识符,可以是HTMLElement、带'#'的id、带'.'的类名或CSS选择器 * @returns 找到的DOM元素或null */ export declare function getElementByIdentifier(elementIdentifier: HTMLElement | string | null | undefined): HTMLElement | null; export declare const getOffsetTopRelativeToScrollContainer: (targetElement: HTMLElement, scrollContainer: HTMLElement) => number; export {};