import { MTableQueries } from "../../common-types/common";
import { CoreAiCapability, CoreAiEmbeddingChunk, CoreAiFeedbackLog, CoreAiKnowledgeSource, CoreAiPromptTemplate, CoreAiRequestAuditLog, CoreAiRoleCapabilityMapping } from "../../schema";
import { controllerResponse } from "../../utilities";
export type AiChatMessage = {
    role: "user" | "assistant";
    content: string;
};
declare class MAiChatPayload extends MTableQueries {
    query: string;
    capability_code: string;
    page_code?: string;
    module?: string;
    record_id?: string;
    context?: Record<string, any>;
    /** Conversation history for multi-turn chat. Each turn: { role: "user"|"assistant", content: string }. */
    messages?: AiChatMessage[];
    constructor(init: MAiChatPayload);
    Validate?(): Partial<Record<keyof MAiChatPayload, string>>;
}
declare class MAiFeedbackPayload {
    request_id?: string;
    rating?: "UP" | "DOWN";
    feedback_text?: string;
    constructor(init: MAiFeedbackPayload);
    Validate?(): Partial<Record<keyof MAiFeedbackPayload, string>>;
}
declare class MAiPromptTemplatePayload {
    ai_prompt_template?: CoreAiPromptTemplate;
    constructor(init: MAiPromptTemplatePayload);
    Validate?(): Partial<Record<keyof MAiPromptTemplatePayload, string>>;
}
declare class MAiKnowledgeSyncPayload {
    ai_knowledge_source?: CoreAiKnowledgeSource;
    chunks?: CoreAiEmbeddingChunk[];
    constructor(init: MAiKnowledgeSyncPayload);
    Validate?(): Partial<Record<keyof MAiKnowledgeSyncPayload, string>>;
}
interface aiCapabilityControllerResponse extends controllerResponse {
    data?: CoreAiCapability[];
}
interface aiPromptTemplateControllerResponse extends controllerResponse {
    data?: CoreAiPromptTemplate[] | CoreAiPromptTemplate;
}
interface aiAuditControllerResponse extends controllerResponse {
    data?: CoreAiRequestAuditLog[] | CoreAiRequestAuditLog;
}
interface aiFeedbackControllerResponse extends controllerResponse {
    data?: CoreAiFeedbackLog;
}
interface aiRoleCapabilityControllerResponse extends controllerResponse {
    data?: CoreAiRoleCapabilityMapping[];
}
interface aiChatControllerResponse extends controllerResponse {
    data?: {
        request_id: string;
        message: string;
        citations?: Array<{
            source_id: string;
            source_title: string;
            chunk_id: string;
        }>;
        provider: string;
        model: string;
        latency_ms: number;
        policy: {
            decision: "ALLOW" | "DENY";
            reason: string;
            capability_code: string;
        };
    };
}
export { MAiChatPayload, MAiFeedbackPayload, MAiPromptTemplatePayload, MAiKnowledgeSyncPayload, aiCapabilityControllerResponse, aiPromptTemplateControllerResponse, aiAuditControllerResponse, aiFeedbackControllerResponse, aiRoleCapabilityControllerResponse, aiChatControllerResponse };
