import { ContractsService } from "./contracts.service";
import { ContractQueryDto } from "./dto/contract-query.dto";
import { CreateContractDto } from "./dto/create-contract.dto";
import { UpdateContractDto } from "./dto/update-contract.dto";
export declare class ContractsController {
    private readonly contractsService;
    constructor(contractsService: ContractsService);
    findAll(companyId: string, query: ContractQueryDto): Promise<{
        items: {
            id: string;
            companyId: string;
            code: string;
            customerId: string;
            rentalId: string;
            title: string;
            startDate: string;
            endDate: string;
            value: number;
            depositAmount: number;
            depositPaidAt: string | null;
            clauses: string;
            notes: string | null;
            status: import("./dto/create-contract.dto").ContractStatusEnum;
            signedAt: string | null;
            createdAt: string;
            updatedAt: string;
            customer: {
                id: string;
                name: string;
                document: string;
                phone: string | null;
            };
            equipmentCount: number;
            receivables: {
                id: string;
                description: string;
                amount: number;
                dueDate: string;
                paidAt: string | null;
                status: import(".prisma/client").$Enums.FinancialStatus;
            }[];
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getStats(companyId: string): Promise<{
        total: number;
        signed: number;
        pendingSignature: number;
        draft: number;
        totalContractedValue: number;
    }>;
    findOne(companyId: string, id: string): Promise<{
        id: string;
        companyId: string;
        code: string;
        customerId: string;
        rentalId: string;
        title: string;
        startDate: string;
        endDate: string;
        value: number;
        depositAmount: number;
        depositPaidAt: string | null;
        clauses: string;
        notes: string | null;
        status: import("./dto/create-contract.dto").ContractStatusEnum;
        signedAt: string | null;
        createdAt: string;
        updatedAt: string;
        customer: {
            number: string | null;
            id: string;
            companyId: string;
            notes: string | null;
            status: import(".prisma/client").$Enums.CustomerStatus;
            createdAt: Date;
            updatedAt: Date;
            type: import(".prisma/client").$Enums.CustomerType;
            name: string;
            document: string;
            email: string | null;
            phone: 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;
        };
        equipmentCount: number;
        receivables: {
            id: string;
            description: string;
            amount: number;
            dueDate: string;
            paidAt: string | null;
            status: import(".prisma/client").$Enums.FinancialStatus;
        }[];
    }>;
    create(companyId: string, dto: CreateContractDto): Promise<{
        id: string;
        companyId: string;
        code: string;
        customerId: string;
        rentalId: string;
        title: string;
        startDate: string;
        endDate: string;
        value: number;
        depositAmount: number;
        depositPaidAt: string | null;
        clauses: string;
        notes: string | null;
        status: import("./dto/create-contract.dto").ContractStatusEnum;
        signedAt: string | null;
        createdAt: string;
        updatedAt: string;
        customer: {
            number: string | null;
            id: string;
            companyId: string;
            notes: string | null;
            status: import(".prisma/client").$Enums.CustomerStatus;
            createdAt: Date;
            updatedAt: Date;
            type: import(".prisma/client").$Enums.CustomerType;
            name: string;
            document: string;
            email: string | null;
            phone: 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;
        };
        equipmentCount: number;
        receivables: {
            id: string;
            description: string;
            amount: number;
            dueDate: string;
            paidAt: string | null;
            status: import(".prisma/client").$Enums.FinancialStatus;
        }[];
    }>;
    update(companyId: string, id: string, dto: UpdateContractDto): Promise<{
        id: string;
        companyId: string;
        code: string;
        customerId: string;
        rentalId: string;
        title: string;
        startDate: string;
        endDate: string;
        value: number;
        depositAmount: number;
        depositPaidAt: string | null;
        clauses: string;
        notes: string | null;
        status: import("./dto/create-contract.dto").ContractStatusEnum;
        signedAt: string | null;
        createdAt: string;
        updatedAt: string;
        customer: {
            number: string | null;
            id: string;
            companyId: string;
            notes: string | null;
            status: import(".prisma/client").$Enums.CustomerStatus;
            createdAt: Date;
            updatedAt: Date;
            type: import(".prisma/client").$Enums.CustomerType;
            name: string;
            document: string;
            email: string | null;
            phone: 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;
        };
        equipmentCount: number;
        receivables: {
            id: string;
            description: string;
            amount: number;
            dueDate: string;
            paidAt: string | null;
            status: import(".prisma/client").$Enums.FinancialStatus;
        }[];
    }>;
    remove(companyId: string, id: string): Promise<{
        id: string;
        companyId: string;
        customerId: string;
        code: string;
        startDate: Date;
        endDate: Date;
        subtotal: import("@prisma/client/runtime/library").Decimal;
        discount: import("@prisma/client/runtime/library").Decimal;
        freight: import("@prisma/client/runtime/library").Decimal;
        depositAmount: import("@prisma/client/runtime/library").Decimal;
        paymentMethod: string | null;
        installmentsCount: number | null;
        total: import("@prisma/client/runtime/library").Decimal;
        operator: string | null;
        notes: string | null;
        status: import(".prisma/client").$Enums.RentalStatus;
        createdAt: Date;
        updatedAt: Date;
    }>;
}
