import { ConfigService } from '@nestjs/config';
import { ModelService } from '../model/model.service';
import * as z from 'zod';
type LLMMessage = {
    role: 'system' | 'user' | 'assistant';
    content: string;
};
export declare const ClientMemorySchema: z.ZodObject<{
    name: z.ZodOptional<z.ZodString>;
    favoriteServices: z.ZodOptional<z.ZodArray<z.ZodString>>;
    preferredStylist: z.ZodOptional<z.ZodString>;
    preferences: z.ZodOptional<z.ZodObject<{
        services: z.ZodOptional<z.ZodArray<z.ZodString>>;
        days: z.ZodOptional<z.ZodArray<z.ZodString>>;
        timeOfDay: z.ZodOptional<z.ZodString>;
        budgetRange: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    metadata: z.ZodOptional<z.ZodObject<{
        notes: z.ZodOptional<z.ZodString>;
        source: z.ZodOptional<z.ZodString>;
        confidence: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strict>;
export declare class ClientMemoryAgentService {
    private readonly configService;
    private readonly model;
    private readonly logger;
    private readonly chatModel;
    private readonly structuredParser;
    constructor(configService: ConfigService, model: ModelService);
    inferAndPersist(params: {
        clientId: string;
        salonId: string;
        conversation: LLMMessage[];
    }): Promise<void>;
    saveClientMemoryFromHistory(params: {
        clientId: string;
        salonId: string;
        chatId?: string;
        maxMessageLength?: number;
        maxMessages?: number;
    }): Promise<void>;
    private buildSystemPrompt;
    private cleanObject;
}
export {};
