import { CustomersService } from "./customers.service";
import { CreateCustomerDto } from "../dto/create-customer.dto";
import { SaveCustomerPhoneNumbersDto } from "../dto/customer-phone-numbers.dto";
import { FilterCustomerDto } from "../dto/filter-customer.dto";
import { UpdateCustomerDto } from "../dto/update-customer.dto";
import { AssignPricingCityByDispatcherDto } from "../dto/assign-pricing-city-by-dispatcher.dto";
import { CustomerMobileLoginDto } from "../dto/create-customer-mobile-login.dto";
import { CustomerRefreshTokenDto } from "../dto/customer-refresh-token.dto";
import { CreateCustomerEpisodeDto } from "../dto/customer-episode/create-customer-episode.dto";
import { UpdateCustomerEpisodeDto } from "../dto/customer-episode/update-customer-episode.dto";
import { CreateEpisodeLogDto } from "../dto/episode-log/create-episode-log.dto";
import { UpdateEpisodeLogDto } from "../dto/episode-log/update-episode-log.dto";
import { GenerateUploadUrlDto } from "../dto/episode-log/generate-upload-url.dto";
import { Request, Response } from "express";
export declare class CustomersController {
    private readonly customersService;
    constructor(customersService: CustomersService);
    create(createCustomerDto: CreateCustomerDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    backfillPlaceIds(): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    assignPricingCityByDispatcher(dto: AssignPricingCityByDispatcherDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findAll(request: any, filterCustomerDto: FilterCustomerDto): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    getPhoneNumbers(customer_id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    updatePhoneNumber(customer_id: number, phoneNumberDto: SaveCustomerPhoneNumbersDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getTags(type: any): Promise<number | import("../../customers-tags/entities/customer_tags.entity").CustomerTag | import("../../customers-tags/entities/customer_tags.entity").CustomerTag[] | import("../../../common/interfaces/pagination-result.interface").PaginatedResult<import("../../customers-tags/entities/customer_tags.entity").CustomerTag>>;
    findOneForMobileApp(id: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    updateForMobileApp(id: string, updateCustomerDto: UpdateCustomerDto, files: {
        profile_photo?: Express.Multer.File[];
        letter_of_guarantee?: Express.Multer.File[];
    }): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findOne(id: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    update(id: string, updateCustomerDto: UpdateCustomerDto, files: {
        profile_photo?: Express.Multer.File[];
        letter_of_guarantee?: Express.Multer.File[];
    }): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    remove(id: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getRatingsCount(customer_id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    mobileLogin(mobileLoginDto: CustomerMobileLoginDto, request: Request): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    verifyOtp(body: {
        otp: string;
        user_id: number;
    }, fcmToken?: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    logout(request: Request): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    refreshToken(refreshTokenDto: CustomerRefreshTokenDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    createCustomerEpisode(customerId: number, createCustomerEpisodeDto: CreateCustomerEpisodeDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findAllCustomerEpisodes(customerId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findOneCustomerEpisode(episodeId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    updateCustomerEpisode(episodeId: number, updateCustomerEpisodeDto: UpdateCustomerEpisodeDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    removeCustomerEpisode(episodeId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getEpisodeLogUploadUrl(episodeId: number, generateUploadUrlDto: GenerateUploadUrlDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    createEpisodeLog(episodeId: number, createEpisodeLogDto: CreateEpisodeLogDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findAllEpisodeLogs(episodeId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findOneEpisodeLog(logId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    updateEpisodeLog(logId: number, updateEpisodeLogDto: UpdateEpisodeLogDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    removeEpisodeLog(logId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getActiveEpisode(customerId: number, skip?: number, limit?: number, search?: string): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    checkEpisodeInvoiceStatus(episodeId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    bulkUpload(file: Express.Multer.File, res: Response): Promise<Response<any, Record<string, any>>>;
}
