import { BootstrapTableRequestDto } from 'src/commons/dto/bootstrap-table-request.dto';
import { CreateCustomerDto } from './dto/create-customer.dto';
import { UpdateCustomerDto } from './dto/update-customer.dto';
import { CustomerService } from './customer.service';
import { ExportService } from 'src/export/export.service';
import { ExportQueryDto } from 'src/export/export.types';
import { Response } from 'express';
export declare class CustomerController {
    private readonly service;
    private readonly exportService;
    constructor(service: CustomerService, exportService: ExportService);
    create(dto: CreateCustomerDto): Promise<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        code: string;
        fullName: string;
        phoneNumber: string;
        ktpNumber: string | null;
        ktpPhotoUrl: string | null;
        address: string;
    }>;
    findAll(query: BootstrapTableRequestDto): Promise<import("../commons/dto/bootstrap-table-response.dto").BootstrapTableResponseDto<{
        totalAmount: number;
        transactionCount: number;
        transactions: undefined;
        _count: {
            transactions: number;
        };
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        code: string;
        fullName: string;
        phoneNumber: string;
        ktpNumber: string | null;
        ktpPhotoUrl: string | null;
        address: string;
    }>>;
    export(query: ExportQueryDto, res: Response): Promise<void>;
    findOne(id: string): import("../../generated/prisma/models").Prisma__CustomerClient<({
        transactions: {
            id: string;
            createdAt: Date;
            modifiedAt: Date | null;
            status: import("../../generated/prisma/enums").TransactionStatus;
            branchId: string;
            trxCode: string;
            totalGrossWeight: import("@prisma/client/runtime/client").Decimal | null;
            totalNetWeight: import("@prisma/client/runtime/client").Decimal | null;
            totalAmount: import("@prisma/client/runtime/client").Decimal | null;
            bankAccountNo: string | null;
            bankAccountName: string | null;
            referralSource: string | null;
            knowsFounder: boolean | null;
            cancellationReason: string | null;
            cancelledBy: string | null;
            cancelledAt: Date | null;
            completedAt: Date | null;
            customerId: string;
            bankId: string | null;
            createdBy: string | null;
            modifiedBy: string | null;
            completedBy: string | null;
            headStoreId: string | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        code: string;
        fullName: string;
        phoneNumber: string;
        ktpNumber: string | null;
        ktpPhotoUrl: string | null;
        address: string;
    }) | null, null, import("@prisma/client/runtime/client").DefaultArgs, {
        omit: import("../../generated/prisma/internal/prismaNamespace").GlobalOmitConfig | undefined;
    }>;
    update(id: string, dto: UpdateCustomerDto): Promise<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        code: string;
        fullName: string;
        phoneNumber: string;
        ktpNumber: string | null;
        ktpPhotoUrl: string | null;
        address: string;
    }>;
    remove(id: string): import("../../generated/prisma/models").Prisma__CustomerClient<{
        id: string;
        createdAt: Date;
        modifiedAt: Date;
        code: string;
        fullName: string;
        phoneNumber: string;
        ktpNumber: string | null;
        ktpPhotoUrl: string | null;
        address: string;
    }, never, import("@prisma/client/runtime/client").DefaultArgs, {
        omit: import("../../generated/prisma/internal/prismaNamespace").GlobalOmitConfig | undefined;
    }>;
}
