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 {};
