/** User variable key-value pair for dynamic configuration */
export interface UserVariable {
    key: string;
    value: string;
}
/** Connection parameters for authentication and routing */
export interface ConnectionParams {
    apiKey?: string;
    token?: string;
    pod?: string;
    userId: string;
}
/** Theme mode setting */
export type ThemeMode = 'light' | 'dark' | 'system';
/** Thread data with message history from the backend */
export interface ThreadData {
    thread_id: string;
    messages: Array<{
        role: 'user' | 'assistant' | 'tool';
        content: string;
        name?: string;
        tool_calls?: Array<{
            id: string;
            name: string;
            args: Record<string, any>;
        }>;
        tool_call_id?: string;
    }>;
    /** Optional artifact registry (from GET /threads/{id}/snapshot). Keyed by
     * artifact id. Consumers using GET /threads/{id}/history can omit this.
     * Kinds match the registered ArtifactKind union: text/code/image/sheet/file. */
    artifacts?: Record<string, {
        id: string;
        kind: 'text' | 'code' | 'image' | 'sheet' | 'file';
        title: string;
        content?: string;
        url?: string;
        mime?: string;
        metadata?: Record<string, any>;
    }>;
}
export interface AivaChatProps {
    engineBaseUrl: string;
    apiKey?: string;
    token?: string;
    pod?: string;
    userId?: string;
    query?: string;
    /** Load an existing thread. Parent provides the thread_id and messages array. */
    thread?: ThreadData;
    userVariables?: UserVariable[];
    theme?: string;
    mode?: ThemeMode;
    onNewChat?: () => void;
    onNavigate?: (chatId: string) => void;
    className?: string;
    /** When true, renders without Shadow DOM (for iframe/SPA use). */
    fullPage?: boolean;
}
export interface AivaChatRef {
    updateConnectionParams(params: Partial<Omit<ConnectionParams, 'userId'>>): void;
    setUserVariables(vars: UserVariable[]): void;
    newChat(): void;
    /** Get the current chat/thread ID */
    getThreadId(): string | null;
}
export declare const AivaChat: import('react').ForwardRefExoticComponent<AivaChatProps & import('react').RefAttributes<AivaChatRef>>;
