export type AgentColor = "orange" | "blue" | "green" | "gray" | "white";
export type WidgetIcon = "robot" | "message" | "support" | "qa" | "chat" | "smile" | "voice" | "uservoice";
export interface AgentInstructions {
    tone?: string;
    style?: string;
    personality?: string;
    objective?: string;
    language?: string;
    emojis?: boolean;
    preferredFormat?: string;
    maxWords?: number;
    avoidTopics?: string[];
    respondOnlyIfKnows?: boolean;
    maintainToneBetweenMessages?: boolean;
    greeting?: string;
}
export interface AgentPerson {
    name?: string;
    role?: string;
    speaksInFirstPerson?: boolean;
    isHuman?: boolean;
}
export interface AgentExample {
    value: string;
    color: AgentColor;
}
export interface AgentSource {
    title?: string;
    url?: string;
    content?: string;
}
export interface ActionExecuted {
    name?: string;
    intent?: string;
    result?: unknown;
}
export interface AgentResponse {
    answer: string;
    sources?: AgentSource[];
    actionsExecuted?: ActionExecuted[];
}
export interface AgentConfig {
    name: string;
    description?: string;
    prompt: string;
    zone: "LA" | "EU";
    color?: AgentColor;
    iconWidget?: WidgetIcon;
    person?: AgentPerson;
    instructions?: AgentInstructions;
    examples?: AgentExample[];
    [key: string]: unknown;
}
export interface AgentData extends AgentConfig {
    id: string;
    _id?: string;
}
export interface PlazbotSDK {
    agent: {
        onMessage(params: {
            agentId: string;
            question: string;
            sessionId: string;
            file?: string;
            multipleAnswers?: boolean;
        }): Promise<AgentResponse>;
        getAgentById(params: {
            id: string;
        }): Promise<AgentData>;
    };
}
