import { Module, PisellCore } from '../../types';
import { BaseModule } from '../BaseModule';
import { ProductData } from '../Product/types';
export * from './types';
export declare class ProductList extends BaseModule implements Module {
    protected defaultName: string;
    protected defaultVersion: string;
    private store;
    private request;
    private otherParams;
    constructor(name?: string, version?: string);
    initialize(core: PisellCore, options: any): Promise<void>;
    storeChange(path?: string, value?: any): Promise<void>;
    loadProducts({ category_ids, product_ids, collection, menu_list_ids, customer_id: paramsCustomerId, with_count, schedule_datetime, schedule_date, cacheId, with_schedule, }: {
        category_ids?: number[];
        product_ids?: number[];
        collection?: number | string[];
        schedule_date?: string;
        cacheId?: string;
        customer_id?: number;
        menu_list_ids?: number[];
        schedule_datetime?: string;
        with_count?: string[];
        with_schedule?: number;
    }, options?: {
        callback?: (result: any) => void;
        subscriberId?: string;
    }): Promise<any>;
    loadProductsPrice({ ids, customer_id, schedule_date, channel, }: {
        ids?: number[];
        customer_id?: number;
        schedule_date?: string;
        channel?: string;
    }): Promise<any>;
    getProducts(): Promise<ProductData[]>;
    getProduct(id: number): Promise<ProductData | undefined>;
    getProductByIds(ids: number[]): Promise<ProductData[] | undefined>;
    addProduct(products: ProductData[]): Promise<void>;
    selectProducts(products: ProductData[]): Promise<void>;
    /**
     * 根据商品编码或条码搜索商品
     * @param code 商品编码或条码
     * @returns 匹配的商品列表，如果没有匹配则返回空数组
     */
    findProductsByCodeOrBarcode(code: string): ProductData[];
}
