import { ErrorService } from 'src/error/error.service';
import { LogService } from '../log/log.service';
import { CreateLinkAttributeToProductDto } from './dto/create-link-attribute-to-product.dto';
import { CreateNotifListDto } from './dto/create-notif-list.dto';
import { CreateProductPictureDto } from './dto/create-product-picture.dto';
import { CreateProductDto } from './dto/create-product.dto';
import { CreateQuantityUnitDto } from './dto/create-quantity-unit.dto';
import { ProductMakerBrandDto } from './dto/product-maker-brand.dto';
import { ProductSortDto } from './dto/product-sort.dto';
import { UpdateProductDto } from './dto/update-product.dto';
import { UpdateQuantityUnitDto } from './dto/update-quantity-unit.dto';
import { ProductService } from './product.service';
export declare class ProductController {
    private productService;
    private error;
    private logService;
    constructor(productService: ProductService, error: ErrorService, logService: LogService);
    statistic(): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    statisticSales(filters: any, userId: number, accessAll: boolean): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    all(onlyCreator: string, userId: number): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    getPictureByProductId(productId: string): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    getQuantityUnits(): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    getQuantityUnitById(id: number): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    addQuantityUnit(dto: CreateQuantityUnitDto, operatorUserId: string): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    sort(dto: ProductSortDto, operatorUserId: string): Promise<void | {
        success: boolean;
        messages: string[];
        data: {};
    }>;
    updateQuantityUnit(id: number, dto: UpdateQuantityUnitDto, operatorUserId: string): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    deleteQuantityUnit(id: number): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    waitingList(page: any, limit: any, sorts: any, filters: any): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    list(page: any, limit: any, sorts: any, filters: any, makerBrandId: any, hasNotifQuantity: any, productIdForMapping: string, wage: number, userId: number, accessAll: boolean): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    getAllForMapping(page: any, limit: any, sorts: any, filters: any, makerBrandIdForMapping: string, wage: number): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    getById(id: string): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    getPendingNotifCountByProductId(productId: string): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    sendNotifForList(dto: CreateNotifListDto, operatorUserId: string): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    addProduct(dto: CreateProductDto, image: any, operatorUserId: string, accessAll: boolean): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    addProductPicture(dto: CreateProductPictureDto, image: any, operatorUserId: string): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    deleteProductPicture(pictureId: any, productId: any, operatorUserId: string): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    makerBrandMapping(productId: string, dto: ProductMakerBrandDto, operatorUserId: string, accessAll: boolean): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    confirmWaiting(id: string): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    update(id: string, dto: UpdateProductDto, image: any, operatorUserId: string, accessAll: boolean): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    linkAttributeToProduct(dto: CreateLinkAttributeToProductDto, operatorUserId: string): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    unlinkAttributeToProduct(productId: string, optionId: number, operatorUserId: string): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
    deleteProduct(id: number, operatorUserId: string, accessAll: boolean): Promise<{
        success: boolean;
        messages: string[];
        data: {};
    }>;
}
