import IEntity from "../interfaces/entity";
import type Model from "../model";
import type { Multilang, TProduct, TProductAttribute, TProductDescription } from "../types";
import Attribute from "./attribute";
import Category from "./category";
export default class Product implements IEntity {
    private model;
    private _id?;
    constructor(model: Model, _id?: number | undefined);
    data: Partial<TProduct>;
    description: Multilang<TProductDescription>;
    get id(): number | undefined;
    setData(newData: Partial<TProduct>): this;
    setDescription(description: Partial<TProductDescription>): this;
    insert(): Promise<this>;
    update(): Promise<this>;
    delete(): Promise<this>;
    toCategory(category: Category, isMain?: boolean): Promise<this>;
    setAttribute(attribute: Attribute, data: Partial<TProductAttribute>): Promise<this>;
}
