import { FabrixService as Service } from '@fabrix/fabrix/dist/common';
export declare class ProductService extends Service {
    publish(type: any, event: any, options?: {
        save?: boolean;
        transaction?: any;
        include?: any;
    }): any;
    resolveItem(item: any, options?: {
        [key: string]: any;
    }): any;
    resolveItems(items: any, options?: {
        [key: string]: any;
    }): any;
    addProducts(products: any, options?: {
        [key: string]: any;
    }): any;
    addProduct(product: any, options?: {
        [key: string]: any;
    }): any;
    createProduct(product: any, options?: {
        [key: string]: any;
    }): any;
    updateProducts(products: any): any;
    updateProduct(product: any, options: any): any;
    removeProducts(products: any): any;
    removeProduct(product: any, options?: {
        [key: string]: any;
    }): any;
    removeVariants(variants: any): any;
    createVariant(product: any, variant: any, options?: {
        [key: string]: any;
    }): any;
    createVariants(product: any, variants: any, options: any): any;
    updateVariant(product: any, variant: any, options: any): any;
    updateVariants(product: any, variants: any, options: any): any;
    removeVariant(id: any, options?: {
        [key: string]: any;
    }): any;
    removeImages(images: any): any;
    removeImage(id: any, options?: {
        [key: string]: any;
    }): any;
    addImage(product: any, variant: any, image: any, options?: {
        [key: string]: any;
    }): any;
    updateImages(images: any, options?: {
        [key: string]: any;
    }): any;
    updateImage(image: any, body: any, options?: {
        [key: string]: any;
    }): any;
    createImage(product: any, variant: any, filePath: any, options?: {
        [key: string]: any;
    }): any;
    addTag(product: any, tag: any, options: any): any;
    removeTag(product: any, tag: any, options: any): any;
    addAssociations(product: any, associations?: any[], options?: {
        [key: string]: any;
    }): any;
    addVariantAssociations(product: any, variant: any, associations?: any[], options?: {
        [key: string]: any;
    }): any;
    addAssociation(product: any, association: any, options?: {
        [key: string]: any;
    }): any;
    removeAssociation(product: any, association: any, options?: {
        [key: string]: any;
    }): any;
    addVariantAssociation(productVariant: any, association: any, options?: {
        [key: string]: any;
    }): any;
    removeVariantAssociation(productVariant: any, association: any, options?: {
        [key: string]: any;
    }): any;
    addCollections(product: any, collections: any, options?: {
        [key: string]: any;
    }): any;
    addCollection(product: any, collection: any, options?: {
        [key: string]: any;
    }): any;
    removeCollection(product: any, collection: any, options?: {
        [key: string]: any;
    }): any;
    addShop(product: any, shop: any, options?: {
        [key: string]: any;
    }): any;
    removeShop(product: any, shop: any, options?: {
        [key: string]: any;
    }): any;
    addVendor(product: any, vendor: any, options?: {
        [key: string]: any;
    }): any;
    removeVendor(product: any, vendor: any, options?: {
        [key: string]: any;
    }): any;
    analytics(product: any, options?: {
        [key: string]: any;
    }): any;
    productDefaults(product: any): any;
    variantDefaults(variant: any, product: any): any;
    beforeCreate(product: any, options: any): any;
    beforeUpdate(product: any, options: any): any;
    beforeVariantCreate(variant: any, options: any): Promise<any>;
    beforeVariantUpdate(variant: any, options: any): Promise<any>;
}
