import { ConfigService } from '@nestjs/config';
import { AppointmentService } from '../appointment/appointment.service';
import { ModelService } from '../model/model.service';
import { SseService } from '../sse/sse.service';
import { ClientService } from '../client/client.service';
import { OfferService } from "../offer/offer.service";
import { AvailabilityService } from '../appointment/appointmenthelper';
export declare enum AppointmentStatus {
    CONFIRMED = "confirmed",
    PENDING = "pending",
    CANCELLED = "cancelled"
}
export declare enum AgentType {
    CALL = "call",
    CHAT = "chat",
    WHATSAPP = "whatsapp",
    INSTAGRAM = "instagram"
}
export declare class BookingToolWrapper {
    private readonly configService;
    private readonly clientService;
    private readonly model;
    private readonly appointmentService;
    private readonly offerService;
    private readonly sseService;
    private readonly availabilityService;
    private readonly logger;
    readonly agent: any;
    private llm;
    private structuredModel;
    private readonly contextSchema;
    constructor(configService: ConfigService, clientService: ClientService, model: ModelService, appointmentService: AppointmentService, offerService: OfferService, sseService: SseService, availabilityService: AvailabilityService);
    private formatBookingsForCall;
    private resolveServiceId;
    private resolveStylistId;
    getChatHistory(chatId: string, chatLimit?: number | 'all', platformUsed?: string): Promise<{
        role: any;
        content: any;
    }[]>;
    buildChatMessages(chatId: string, userMessage: string, isClientNameUnknown: boolean, salonId: string, timezone: string, clientName?: string, existingClientData?: string): Promise<{
        role: "user" | "assistant" | "system";
        content: string;
    }[]>;
    saveMessage(role: 'user' | 'assistant' | 'tool', text: string, chatId: string, clientId?: string, salonId?: string, platformUsed?: string): Promise<void>;
    invokeAgent(messages: Record<string, any>, context: {
        salonId: string;
        clientId?: string;
        chatId?: string;
        agent_type?: AgentType;
        timezone?: string;
    }): Promise<any>;
    handleChat({ chatId, clientId, message, salonId, agent_type }: {
        chatId: any;
        clientId: any;
        message: any;
        salonId: any;
        agent_type: any;
    }): Promise<{
        chatId: any;
        clientId: any;
        reply: any;
        imageUrl: string;
    }>;
}
