import { ClientService } from './client.service';
import { ClientResponseDto } from './dto/client-response.dto';
import { CreateClientDto } from './dto/create-client.dto';
import { UpdateClientDto } from './dto/update-client.dto';
import { PaginatedClientDto } from './dto/paginated-client.dto';
import { PlanResponseDto } from './dto/plan.dto';
import { PlanDataDto } from './dto/plan-data.dto';
import { PaginatedResponseDto } from 'common/utils/paginated-response.dto';
import { UserResponseDto } from 'modules/user/dto/user-response.dto';
export declare class ClientController {
    private readonly clientService;
    private readonly logger;
    constructor(clientService: ClientService);
    createClient(createClientDto: CreateClientDto): Promise<ClientResponseDto>;
    getAllClients(page?: number, limit?: number): Promise<PaginatedClientDto>;
    getClientById(id: string): Promise<ClientResponseDto>;
    getClientPlan(id: string): Promise<PlanResponseDto>;
    updateClient(id: string, updateClientDto: UpdateClientDto): Promise<ClientResponseDto>;
    updateClientPlan(id: string, planDataDto: PlanDataDto): Promise<PlanResponseDto>;
    deleteClient(id: string): Promise<void>;
    getClientUsers(id: string, page?: number, limit?: number): Promise<PaginatedResponseDto<UserResponseDto>>;
    linkUserToClient(id: string, userEmail: string): Promise<{
        success: boolean;
    }>;
    unlinkUserFromClient(clientId: string, userId: number): Promise<void>;
    upgradeUserToClient(userId: number, planData: PlanDataDto): Promise<ClientResponseDto>;
    validateUserLinkLimit(id: string): Promise<{
        canLinkMoreUsers: boolean;
    }>;
}
