import { Prisma } from "@prisma/client";
import { PrismaService } from "../../infra/prisma/prisma.service";
import { CategoryQueryDto } from "./dto/category-query.dto";
import { CreateCategoryDto } from "./dto/create-category.dto";
import { UpdateCategoryDto } from "./dto/update-category.dto";
export declare class CategoriesService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    findAll(companyId: string, query: CategoryQueryDto): Promise<{
        items: ({
            _count: {
                equipment: number;
            };
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            companyId: string;
            name: string;
            description: string | null;
            color: string;
        })[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getStats(companyId: string): Promise<{
        totalCategories: number;
        totalEquipment: number;
        topCategory: {
            name: string;
            count: number;
        } | null;
    }>;
    findOne(companyId: string, id: string): Promise<{
        equipment: {
            id: string;
            status: import(".prisma/client").$Enums.EquipmentStatus;
            code: string;
            assetTag: string;
            brand: string;
            model: string;
            dailyRate: Prisma.Decimal;
        }[];
        _count: {
            equipment: number;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        companyId: string;
        name: string;
        description: string | null;
        color: string;
    }>;
    create(companyId: string, dto: CreateCategoryDto): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        companyId: string;
        name: string;
        description: string | null;
        color: string;
    }>;
    update(companyId: string, id: string, dto: UpdateCategoryDto): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        companyId: string;
        name: string;
        description: string | null;
        color: string;
    }>;
    remove(companyId: string, id: string): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        companyId: string;
        name: string;
        description: string | null;
        color: string;
    }>;
}
