import { Count, Filter, Where } from '@loopback/repository';
import { CreateLeadDTO, Lead } from '../models';
import { LeadRepository } from '../repositories';
import { OnboardingService } from '../services';
import { LeadUserWithToken } from '../types';
import { VerifyLeadResponseDTO } from '../models/dtos/verify-lead-response-dto.model';
export declare class LeadController {
    leadRepository: LeadRepository;
    onboarding: OnboardingService;
    private readonly request;
    constructor(leadRepository: LeadRepository, onboarding: OnboardingService, request: Request);
    create(lead: Omit<CreateLeadDTO, 'isValidated' | 'addressId' | 'id'>): Promise<{
        [key: string]: string;
    }>;
    validateLead(id: string, leadUser: LeadUserWithToken): Promise<VerifyLeadResponseDTO>;
    count(where?: Where<Lead>): Promise<Count>;
    find(filter?: Filter<Lead>): Promise<Lead[]>;
    updateAll(lead: Lead, where?: Where<Lead>): Promise<Count>;
    findById(id: string, filter?: Filter<Lead>): Promise<Lead>;
    updateById(id: string, lead: Lead): Promise<void>;
    replaceById(id: string, lead: Lead): Promise<void>;
    deleteById(id: string): Promise<void>;
}
