import { CustomersService } from "./customers.service";
import { CreateCustomerDto } from "./dto/create-customer.dto";
import { CustomerQueryDto } from "./dto/customer-query.dto";
import { UpdateCustomerDto } from "./dto/update-customer.dto";
export declare class CustomersController {
    private readonly customersService;
    constructor(customersService: CustomersService);
    findAll(companyId: string, query: CustomerQueryDto): Promise<{
        items: ({
            _count: {
                rentals: number;
                receivables: number;
                documents: number;
            };
        } & {
            number: string | null;
            id: string;
            document: string;
            email: string | null;
            phone: string | null;
            status: import(".prisma/client").$Enums.CustomerStatus;
            createdAt: Date;
            updatedAt: Date;
            companyId: string;
            name: string;
            type: import(".prisma/client").$Enums.CustomerType;
            notes: string | null;
            mobile: string | null;
            contactName: string | null;
            creditLimit: import("@prisma/client/runtime/library").Decimal;
            zipCode: string | null;
            street: string | null;
            complement: string | null;
            district: string | null;
            city: string | null;
            state: string | null;
        })[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getStats(companyId: string): Promise<{
        total: number;
        active: number;
        inactive: number;
        delinquent: number;
        totalCreditLimit: number;
    }>;
    findOne(companyId: string, id: string): Promise<{
        rentals: {
            id: string;
            status: import(".prisma/client").$Enums.RentalStatus;
            code: string;
            startDate: Date;
            endDate: Date;
            total: import("@prisma/client/runtime/library").Decimal;
        }[];
        receivables: {
            id: string;
            status: import(".prisma/client").$Enums.FinancialStatus;
            description: string;
            amount: import("@prisma/client/runtime/library").Decimal;
            dueDate: Date;
        }[];
        _count: {
            rentals: number;
            receivables: number;
            documents: number;
        };
        documents: {
            id: string;
            createdAt: Date;
            name: string;
            customerId: string;
            fileUrl: string;
            fileType: string;
        }[];
    } & {
        number: string | null;
        id: string;
        document: string;
        email: string | null;
        phone: string | null;
        status: import(".prisma/client").$Enums.CustomerStatus;
        createdAt: Date;
        updatedAt: Date;
        companyId: string;
        name: string;
        type: import(".prisma/client").$Enums.CustomerType;
        notes: string | null;
        mobile: string | null;
        contactName: string | null;
        creditLimit: import("@prisma/client/runtime/library").Decimal;
        zipCode: string | null;
        street: string | null;
        complement: string | null;
        district: string | null;
        city: string | null;
        state: string | null;
    }>;
    create(companyId: string, dto: CreateCustomerDto): Promise<{
        number: string | null;
        id: string;
        document: string;
        email: string | null;
        phone: string | null;
        status: import(".prisma/client").$Enums.CustomerStatus;
        createdAt: Date;
        updatedAt: Date;
        companyId: string;
        name: string;
        type: import(".prisma/client").$Enums.CustomerType;
        notes: string | null;
        mobile: string | null;
        contactName: string | null;
        creditLimit: import("@prisma/client/runtime/library").Decimal;
        zipCode: string | null;
        street: string | null;
        complement: string | null;
        district: string | null;
        city: string | null;
        state: string | null;
    }>;
    update(companyId: string, id: string, dto: UpdateCustomerDto): Promise<{
        number: string | null;
        id: string;
        document: string;
        email: string | null;
        phone: string | null;
        status: import(".prisma/client").$Enums.CustomerStatus;
        createdAt: Date;
        updatedAt: Date;
        companyId: string;
        name: string;
        type: import(".prisma/client").$Enums.CustomerType;
        notes: string | null;
        mobile: string | null;
        contactName: string | null;
        creditLimit: import("@prisma/client/runtime/library").Decimal;
        zipCode: string | null;
        street: string | null;
        complement: string | null;
        district: string | null;
        city: string | null;
        state: string | null;
    }>;
    remove(companyId: string, id: string): Promise<{
        number: string | null;
        id: string;
        document: string;
        email: string | null;
        phone: string | null;
        status: import(".prisma/client").$Enums.CustomerStatus;
        createdAt: Date;
        updatedAt: Date;
        companyId: string;
        name: string;
        type: import(".prisma/client").$Enums.CustomerType;
        notes: string | null;
        mobile: string | null;
        contactName: string | null;
        creditLimit: import("@prisma/client/runtime/library").Decimal;
        zipCode: string | null;
        street: string | null;
        complement: string | null;
        district: string | null;
        city: string | null;
        state: string | null;
    }>;
}
