import { z } from 'zod';
/**
 *�ịnh nghĩa phạm vi kiến thức cho chatbot
 */
export declare const KnowledgeDomains: {
    readonly FARMING_TECHNIQUES: "farming_techniques";
    readonly WATER_QUALITY: "water_quality";
    readonly DISEASE_MANAGEMENT: "disease_management";
    readonly BREEDING: "breeding";
    readonly FEED_MANAGEMENT: "feed_management";
    readonly PRODUCTION: "production";
    readonly MARKET_ANALYSIS: "market_analysis";
    readonly REGULATIONS: "regulations";
};
/**
 * Cấu hình cho AquanetBot
 * @property {string} apiKey - API key của DeepSeek, bắt buộc để xác thực
 * @property {string} baseUrl - URL cơ sở của DeepSeek API, mặc định là 'https://api.deepseek.com/v1'
 * @property {string} defaultPrompt - System prompt mặc định cho bot, định hướng cách bot trả lời
 * @property {number} temperature - Độ sáng tạo của câu trả lời (0-1)
 * @property {number} maxTokens - Số token tối đa cho mỗi câu trả lời
 * @property {'json' | 'stream'} responseFormat - Định dạng phản hồi
 * @property {function} onStream - Callback xử lý stream
 *
 * Cấu hình chuyên biệt cho aquaculture:
 * @property {object} aquacultureConfig - Cấu hình đặc thù cho nuôi trồng thủy sản
 *   @property {string[]} knowledgeDomains - Các lĩnh vực chuyên môn (farming_techniques, water_quality, etc.)
 *   @property {string[]} dataSources - Nguồn dữ liệu tham khảo (research_papers, industry_standards, etc.)
 *   @property {'basic' | 'intermediate' | 'advanced'} expertiseLevel - Mức độ chuyên sâu của thông tin
 *   @property {string} language - Ngôn ngữ chính (vi, en)
 *   @property {boolean} useIndustryTerms - Sử dụng thuật ngữ chuyên ngành
 *   @property {object} tools - Công cụ tích hợp (máy tính thông số nước, lịch nuôi, etc.)
 *   @property {object} validation - Cấu hình kiểm tra độ chính xác
 *   @property {object} customization - Tùy chỉnh theo nhu cầu cụ thể
 */
export declare const ConfigSchema: z.ZodObject<{
    apiKey: z.ZodString;
    baseUrl: z.ZodDefault<z.ZodString>;
    defaultPrompt: z.ZodOptional<z.ZodString>;
    temperature: z.ZodDefault<z.ZodNumber>;
    maxTokens: z.ZodDefault<z.ZodNumber>;
    responseFormat: z.ZodDefault<z.ZodEnum<["json", "stream"]>>;
    onStream: z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodVoid>>;
    aquacultureConfig: z.ZodDefault<z.ZodObject<{
        knowledgeDomains: z.ZodDefault<z.ZodArray<z.ZodEnum<["farming_techniques", "water_quality", "disease_management", "breeding", "feed_management", "production", "market_analysis", "regulations"]>, "many">>;
        dataSources: z.ZodDefault<z.ZodArray<z.ZodEnum<["research_papers", "industry_standards", "technical_guidelines", "expert_knowledge", "case_studies", "market_reports"]>, "many">>;
        expertiseLevel: z.ZodDefault<z.ZodEnum<["basic", "intermediate", "advanced"]>>;
        language: z.ZodDefault<z.ZodEnum<["vi", "en"]>>;
        useIndustryTerms: z.ZodDefault<z.ZodBoolean>;
        tools: z.ZodDefault<z.ZodObject<{
            waterCalculator: z.ZodDefault<z.ZodBoolean>;
            farmingCalendar: z.ZodDefault<z.ZodBoolean>;
            alertSystem: z.ZodDefault<z.ZodBoolean>;
            diseaseIdentifier: z.ZodDefault<z.ZodBoolean>;
            feedOptimizer: z.ZodDefault<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            waterCalculator: boolean;
            farmingCalendar: boolean;
            alertSystem: boolean;
            diseaseIdentifier: boolean;
            feedOptimizer: boolean;
        }, {
            waterCalculator?: boolean | undefined;
            farmingCalendar?: boolean | undefined;
            alertSystem?: boolean | undefined;
            diseaseIdentifier?: boolean | undefined;
            feedOptimizer?: boolean | undefined;
        }>>;
        validation: z.ZodDefault<z.ZodObject<{
            requireSourceCitation: z.ZodDefault<z.ZodBoolean>;
            confidenceScoring: z.ZodDefault<z.ZodBoolean>;
            expertReviewThreshold: z.ZodDefault<z.ZodNumber>;
            factCheckSources: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            requireSourceCitation: boolean;
            confidenceScoring: boolean;
            expertReviewThreshold: number;
            factCheckSources: string[];
        }, {
            requireSourceCitation?: boolean | undefined;
            confidenceScoring?: boolean | undefined;
            expertReviewThreshold?: number | undefined;
            factCheckSources?: string[] | undefined;
        }>>;
        customization: z.ZodDefault<z.ZodObject<{
            speciesSpecific: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
            farmingMethods: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
            regionalGuidelines: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
            customPrompts: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
        }, "strip", z.ZodTypeAny, {
            speciesSpecific: string[];
            farmingMethods: string[];
            regionalGuidelines: string[];
            customPrompts: Record<string, string>;
        }, {
            speciesSpecific?: string[] | undefined;
            farmingMethods?: string[] | undefined;
            regionalGuidelines?: string[] | undefined;
            customPrompts?: Record<string, string> | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        validation: {
            requireSourceCitation: boolean;
            confidenceScoring: boolean;
            expertReviewThreshold: number;
            factCheckSources: string[];
        };
        knowledgeDomains: ("farming_techniques" | "water_quality" | "disease_management" | "breeding" | "feed_management" | "production" | "market_analysis" | "regulations")[];
        dataSources: ("research_papers" | "industry_standards" | "technical_guidelines" | "expert_knowledge" | "case_studies" | "market_reports")[];
        expertiseLevel: "basic" | "intermediate" | "advanced";
        language: "vi" | "en";
        useIndustryTerms: boolean;
        tools: {
            waterCalculator: boolean;
            farmingCalendar: boolean;
            alertSystem: boolean;
            diseaseIdentifier: boolean;
            feedOptimizer: boolean;
        };
        customization: {
            speciesSpecific: string[];
            farmingMethods: string[];
            regionalGuidelines: string[];
            customPrompts: Record<string, string>;
        };
    }, {
        validation?: {
            requireSourceCitation?: boolean | undefined;
            confidenceScoring?: boolean | undefined;
            expertReviewThreshold?: number | undefined;
            factCheckSources?: string[] | undefined;
        } | undefined;
        knowledgeDomains?: ("farming_techniques" | "water_quality" | "disease_management" | "breeding" | "feed_management" | "production" | "market_analysis" | "regulations")[] | undefined;
        dataSources?: ("research_papers" | "industry_standards" | "technical_guidelines" | "expert_knowledge" | "case_studies" | "market_reports")[] | undefined;
        expertiseLevel?: "basic" | "intermediate" | "advanced" | undefined;
        language?: "vi" | "en" | undefined;
        useIndustryTerms?: boolean | undefined;
        tools?: {
            waterCalculator?: boolean | undefined;
            farmingCalendar?: boolean | undefined;
            alertSystem?: boolean | undefined;
            diseaseIdentifier?: boolean | undefined;
            feedOptimizer?: boolean | undefined;
        } | undefined;
        customization?: {
            speciesSpecific?: string[] | undefined;
            farmingMethods?: string[] | undefined;
            regionalGuidelines?: string[] | undefined;
            customPrompts?: Record<string, string> | undefined;
        } | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    apiKey: string;
    baseUrl: string;
    temperature: number;
    maxTokens: number;
    responseFormat: "json" | "stream";
    aquacultureConfig: {
        validation: {
            requireSourceCitation: boolean;
            confidenceScoring: boolean;
            expertReviewThreshold: number;
            factCheckSources: string[];
        };
        knowledgeDomains: ("farming_techniques" | "water_quality" | "disease_management" | "breeding" | "feed_management" | "production" | "market_analysis" | "regulations")[];
        dataSources: ("research_papers" | "industry_standards" | "technical_guidelines" | "expert_knowledge" | "case_studies" | "market_reports")[];
        expertiseLevel: "basic" | "intermediate" | "advanced";
        language: "vi" | "en";
        useIndustryTerms: boolean;
        tools: {
            waterCalculator: boolean;
            farmingCalendar: boolean;
            alertSystem: boolean;
            diseaseIdentifier: boolean;
            feedOptimizer: boolean;
        };
        customization: {
            speciesSpecific: string[];
            farmingMethods: string[];
            regionalGuidelines: string[];
            customPrompts: Record<string, string>;
        };
    };
    defaultPrompt?: string | undefined;
    onStream?: ((args_0: string, ...args: unknown[]) => void) | undefined;
}, {
    apiKey: string;
    baseUrl?: string | undefined;
    defaultPrompt?: string | undefined;
    temperature?: number | undefined;
    maxTokens?: number | undefined;
    responseFormat?: "json" | "stream" | undefined;
    onStream?: ((args_0: string, ...args: unknown[]) => void) | undefined;
    aquacultureConfig?: {
        validation?: {
            requireSourceCitation?: boolean | undefined;
            confidenceScoring?: boolean | undefined;
            expertReviewThreshold?: number | undefined;
            factCheckSources?: string[] | undefined;
        } | undefined;
        knowledgeDomains?: ("farming_techniques" | "water_quality" | "disease_management" | "breeding" | "feed_management" | "production" | "market_analysis" | "regulations")[] | undefined;
        dataSources?: ("research_papers" | "industry_standards" | "technical_guidelines" | "expert_knowledge" | "case_studies" | "market_reports")[] | undefined;
        expertiseLevel?: "basic" | "intermediate" | "advanced" | undefined;
        language?: "vi" | "en" | undefined;
        useIndustryTerms?: boolean | undefined;
        tools?: {
            waterCalculator?: boolean | undefined;
            farmingCalendar?: boolean | undefined;
            alertSystem?: boolean | undefined;
            diseaseIdentifier?: boolean | undefined;
            feedOptimizer?: boolean | undefined;
        } | undefined;
        customization?: {
            speciesSpecific?: string[] | undefined;
            farmingMethods?: string[] | undefined;
            regionalGuidelines?: string[] | undefined;
            customPrompts?: Record<string, string> | undefined;
        } | undefined;
    } | undefined;
}>;
export type Config = z.infer<typeof ConfigSchema>;
/**
 * Định dạng tin nhắn trao đổi với API
 * @property {'system' | 'user' | 'assistant'} role - Vai trò của tin nhắn
 * @property {string} content - Nội dung tin nhắn
 */
export interface Message {
    role: 'system' | 'user' | 'assistant';
    content: string;
}
/**
 * Định dạng phản hồi từ API khi không sử dụng stream
 */
export interface ChatResponse {
    id: string;
    choices: Array<{
        message: Message;
        finish_reason: string;
    }>;
    usage: {
        prompt_tokens: number;
        completion_tokens: number;
        total_tokens: number;
    };
}
/**
 * Định dạng của từng phần dữ liệu trong stream response
 */
export interface StreamChunk {
    id: string;
    choices: Array<{
        delta: Partial<Message>;
        finish_reason: string | null;
    }>;
}
/**
 * Tùy chọn khởi tạo cho AquanetBot
 * @property {Config} config - Cấu hình cho bot
 * @property {'react' | 'nextjs'} framework - Framework đang sử dụng
 */
export interface AquanetBotOptions {
    config: Config;
    framework?: 'react' | 'nextjs';
}
