import Option from "../entities/option";
import Product from "../entities/product";
import ProductOption from "../entities/product-option";
import IFactory from "../interfaces/factory";
import type Model from "../model";
import { TProductOption } from "../types";
import ProductOptionValueFactory from "./product-option-value";
export default class ProductOptionFactory implements IFactory<ProductOption> {
    private model;
    constructor(model: Model);
    value: ProductOptionValueFactory;
    create(product: Product, option: Option): ProductOption;
    extract(criteria: Partial<TProductOption>): Promise<ProductOption | undefined>;
    extractAll(criteria: Partial<TProductOption>): Promise<ProductOption[]>;
    private createEntityFromRowData;
}
