import Product from "../entities/product";
import IFactory from "../interfaces/factory";
import type Model from "../model";
import { TProduct } from "../types";
import ProductImageFactory from "./product-image";
import ProductOptionFactory from "./product-option";
import ProductSpecialFactory from "./product-special";
export default class ProductFactory implements IFactory<Product> {
    private model;
    constructor(model: Model);
    option: ProductOptionFactory;
    special: ProductSpecialFactory;
    image: ProductImageFactory;
    create(): Product;
    extract(criteria: Partial<TProduct>): Promise<Product | undefined>;
    extractAll(criteria: Partial<TProduct>): Promise<Product[]>;
    private createEntityFromRowData;
}
