import { CustomersService } from './customers.service';
import { CreateCustomerDto, UpdateCustomerDto, AddPaymentDto } from './dto/customer.dto';
export declare class CustomersController {
    private readonly customersService;
    constructor(customersService: CustomersService);
    create(createCustomerDto: CreateCustomerDto, req: any): Promise<{
        message: string;
        customer: import("mongoose").Document<unknown, {}, import("mongoose").Document<unknown, {}, import("./schema/customers.schema").Customers, {}> & import("./schema/customers.schema").Customers & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        }, {}> & import("mongoose").Document<unknown, {}, import("./schema/customers.schema").Customers, {}> & import("./schema/customers.schema").Customers & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        } & Required<{
            _id: import("mongoose").Types.ObjectId;
        }>;
    }>;
    uploadCustomersCsv(file: any, req: any): Promise<any>;
    list(page: number, limit: number, search: string, is_guest: string, req: any): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    getAgeingReport(page: number, limit: number, search: string, req: any): Promise<{
        status: string;
        message: string;
        data: unknown[];
        total_permanent_outstanding: number;
        total_guest_outstanding: number;
        total_0_15_days: number;
        total_16_30_days: number;
        total_30_plus_days: number;
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    getById(id: string, req: any): Promise<{
        customer: import("mongoose").Document<unknown, {}, import("mongoose").Document<unknown, {}, import("./schema/customers.schema").Customers, {}> & import("./schema/customers.schema").Customers & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        }, {}> & import("mongoose").Document<unknown, {}, import("./schema/customers.schema").Customers, {}> & import("./schema/customers.schema").Customers & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        } & Required<{
            _id: import("mongoose").Types.ObjectId;
        }>;
    }>;
    update(id: string, updateCustomerDto: UpdateCustomerDto, req: any): Promise<{
        message: string;
        customer: import("mongoose").Document<unknown, {}, import("mongoose").Document<unknown, {}, import("./schema/customers.schema").Customers, {}> & import("./schema/customers.schema").Customers & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        }, {}> & import("mongoose").Document<unknown, {}, import("./schema/customers.schema").Customers, {}> & import("./schema/customers.schema").Customers & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        } & Required<{
            _id: import("mongoose").Types.ObjectId;
        }>;
    }>;
    delete(id: string, req: any): Promise<{
        message: string;
    }>;
    addPayment(addPaymentDto: AddPaymentDto, req: any): Promise<{
        message: string;
        payment: any;
    }>;
    getLedger(id: string, req: any): Promise<{
        customer: any;
        summary: {
            totalBilled: any;
            totalReceived: number;
            totalOutstanding: number;
            outstanding_income: any;
            outstanding_gst: any;
        };
    }>;
    getLedgerTrips(id: string, page: number, limit: number, req: any): Promise<{
        status: string;
        message: string;
        data: any[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            hasNextPage: boolean;
            hasPrevPage: boolean;
        };
    }>;
    getLedgerPayments(id: string, page: number, limit: number, req: any): Promise<{
        status: number;
        message: string;
        data: any;
        outstanding_opening_balance: number;
        meta: {
            total: any;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
}
