import React from "react";
import type { AiDecisionChoice, AiDecisionRequestPayload, AiDecisionResponsePayload, AiTokenUsage, AiWebSource } from "./client";
export type AiChangeVersion = {
    id: string;
    label: string;
    title: string;
    summary: string;
    time: string;
    changes: string[];
};
export type AiAgentMessage = {
    id: string;
    role: "user" | "assistant";
    content: string;
    time: string;
    createdAt?: string;
    status?: "ready" | "running" | "error" | "pending_apply";
    snapshotId?: string | null;
    usage?: AiTokenUsage;
    sources?: AiWebSource[];
    attachments?: AiAgentAttachment[];
};
export type AiAgentAttachment = {
    id: string;
    type: "image";
    name: string;
    url: string;
    mimeType?: string;
    dataUrl?: string;
    size?: number;
};
export type AiQuickAction = string | {
    label: string;
    prompt: string;
};
export type EasyEmailProAiAgentProps = {
    className?: string;
    status?: "ready" | "running" | "error";
    model?: string;
    currentVersionId?: string;
    versions?: AiChangeVersion[];
    messages?: AiAgentMessage[];
    activity?: string;
    disabled?: boolean;
    sendDisabled?: boolean;
    quickActions?: AiQuickAction[];
    pendingAction?: {
        label: string;
        disabled?: boolean;
        onClick: () => void | Promise<void>;
    };
    pendingDecision?: AiDecisionRequestPayload | null;
    placeholder?: string;
    onSend?: (message: string, attachments?: AiAgentAttachment[]) => void | Promise<void>;
    onUpload?: (file: File) => Promise<AiAgentAttachment>;
    onChooseDecision?: (choice: AiDecisionChoice, response: AiDecisionResponsePayload) => void | Promise<void>;
    onCancelDecision?: () => void;
    onRestoreSnapshot?: (snapshotId: string) => void | Promise<void>;
    onRestoreVersion?: (version: AiChangeVersion) => void;
    onStepVersion?: (version: AiChangeVersion, direction: "previous" | "next") => void;
    onQuickAction?: (action: string) => void | Promise<void>;
    onClose?: () => void;
};
export declare function EasyEmailProAiAgent({ className, messages, activity, disabled, sendDisabled, quickActions, pendingAction, pendingDecision, placeholder, onSend, onUpload, onChooseDecision, onCancelDecision, onRestoreSnapshot, onQuickAction, }: EasyEmailProAiAgentProps): React.JSX.Element;
