import { ErrorService } from 'src/error/error.service';
import { Repository } from 'typeorm';
import { ProductService } from '../product/product.service';
import { CreateAttributeOptionDto } from './dto/create-attribute-option.dto';
import { CreateAttributeDto } from './dto/create-attribute.dto';
import { UpdateAttributeDto } from './dto/update-attribute.dto';
import { AttributeOptionEntity } from './entities/attribute-option.entity';
import { AttributeEntity } from './entities/attribute.entity';
export declare class AttributeService {
    private attributeRepository;
    private attributeOptionRepository;
    private error;
    private productService;
    constructor(attributeRepository: Repository<AttributeEntity>, attributeOptionRepository: Repository<AttributeOptionEntity>, error: ErrorService, productService: ProductService);
    getAll(page?: number, limit?: number, filters?: any, sorts?: any): Promise<{
        items: AttributeEntity[];
        pagination: {
            itemsPerPage: number;
            totalItems: number;
            currentPage: number;
            totalPages: number;
        };
    }>;
    addAttribute(dto: CreateAttributeDto): Promise<AttributeEntity>;
    addAttributeOption(dto: CreateAttributeOptionDto): Promise<AttributeOptionEntity>;
    getById(id: number): Promise<AttributeEntity>;
    updateAttribute(id: number, dto: UpdateAttributeDto): Promise<import("typeorm").UpdateResult>;
    deleteAttribute(id: number): Promise<import("typeorm").UpdateResult>;
    deleteOption(id: number): Promise<import("typeorm").DeleteResult>;
}
