import type { ApiKeyAuthContext } from "../common/auth/auth.types";
import { CustomerService } from "./customer.service";
import { CreateCustomerDto } from "./dto/create-customer.dto";
import { UpdateCustomerDto } from "./dto/update-customer.dto";
export declare class CustomerController {
    private readonly service;
    constructor(service: CustomerService);
    create(auth: ApiKeyAuthContext, dto: CreateCustomerDto): Promise<{
        id: string;
        email: string | null;
        name: string | null;
        createdAt: Date;
        updatedAt: Date;
        merchantId: string;
        country: string | null;
        metadata: import("@prisma/client/runtime/library").JsonValue | null;
        docType: import("@prisma/client").$Enums.CustomerDocType | null;
        docNumber: string | null;
        phone: string | null;
    }>;
    list(auth: ApiKeyAuthContext, limit?: string, cursor?: string, email?: string, docNumber?: string): Promise<{
        data: {
            id: string;
            email: string | null;
            name: string | null;
            createdAt: Date;
            updatedAt: Date;
            merchantId: string;
            country: string | null;
            metadata: import("@prisma/client/runtime/library").JsonValue | null;
            docType: import("@prisma/client").$Enums.CustomerDocType | null;
            docNumber: string | null;
            phone: string | null;
        }[];
        nextCursor: string | null;
    }>;
    findOne(auth: ApiKeyAuthContext, id: string): Promise<{
        id: string;
        email: string | null;
        name: string | null;
        createdAt: Date;
        updatedAt: Date;
        merchantId: string;
        country: string | null;
        metadata: import("@prisma/client/runtime/library").JsonValue | null;
        docType: import("@prisma/client").$Enums.CustomerDocType | null;
        docNumber: string | null;
        phone: string | null;
    }>;
    update(auth: ApiKeyAuthContext, id: string, dto: UpdateCustomerDto): Promise<{
        id: string;
        email: string | null;
        name: string | null;
        createdAt: Date;
        updatedAt: Date;
        merchantId: string;
        country: string | null;
        metadata: import("@prisma/client/runtime/library").JsonValue | null;
        docType: import("@prisma/client").$Enums.CustomerDocType | null;
        docNumber: string | null;
        phone: string | null;
    }>;
}
