/**
 * useAI Hook
 *
 * A React hook that provides access to AI capabilities from the native_aijs SDK
 */
import type { AiConfig, ChatRequest, AiOperationStatus, AiOperationState, AiError } from '../types/ai.js';
interface UseAIOptions {
    initialConfig?: Partial<AiConfig>;
    onError?: (error: AiError) => void;
}
/**
 * Hook for using AI capabilities in React components
 */
export declare const useAI: (options?: UseAIOptions) => {
    state: AiOperationState;
    status: AiOperationStatus;
    messages: {
        role: "function" | "user" | "system" | "assistant";
        content: string;
        name?: string | undefined;
        function_call?: {
            name: string;
            arguments: string;
        } | undefined;
    }[];
    response: {
        id: string;
        model: string;
        created: number;
        choices: {
            index: number;
            message: {
                role: "function" | "user" | "system" | "assistant";
                content: string;
                name?: string | undefined;
                function_call?: {
                    name: string;
                    arguments: string;
                } | undefined;
            };
            finish_reason?: "length" | "stop" | "function_call" | "content_filter" | undefined;
        }[];
        usage?: {
            prompt_tokens: number;
            completion_tokens: number;
            total_tokens: number;
        } | undefined;
    } | null;
    error: {
        code: string;
        message: string;
        details?: Record<string, unknown> | undefined;
    } | null;
    isLoading: boolean;
    isStreaming: boolean;
    isIdle: boolean;
    isError: boolean;
    isSuccess: boolean;
    chat: (request: Omit<ChatRequest, "provider" | "model"> & Partial<Pick<ChatRequest, "provider" | "model">>, abortSignal?: AbortSignal) => Promise<{
        response: {
            id: string;
            model: string;
            created: number;
            choices: {
                index: number;
                message: {
                    role: "function" | "user" | "system" | "assistant";
                    content: string;
                    name?: string | undefined;
                    function_call?: {
                        name: string;
                        arguments: string;
                    } | undefined;
                };
                finish_reason?: "length" | "stop" | "function_call" | "content_filter" | undefined;
            }[];
            usage?: {
                prompt_tokens: number;
                completion_tokens: number;
                total_tokens: number;
            } | undefined;
        };
        messages: {
            role: "function" | "user" | "system" | "assistant";
            content: string;
            name?: string | undefined;
            function_call?: {
                name: string;
                arguments: string;
            } | undefined;
        }[];
    }>;
    generateEmbeddings: (texts: string[], model?: string) => Promise<number[][]>;
    analyzeDocument: (document: string, options?: {
        detailed?: boolean;
        categories?: string[];
    }) => Promise<{
        summary: string;
        keyPoints: string[];
        sentiment: "positive" | "neutral" | "negative";
        categories?: {
            [key: string]: number;
        };
    }>;
    cancel: () => void;
    reset: () => void;
    defaultConfig: {
        model: string;
        provider: "azure" | "local" | "openai" | "anthropic";
        temperature?: number | undefined;
        maxTokens?: number | undefined;
        stream?: boolean | undefined;
        systemPrompt?: string | undefined;
    };
};
export default useAI;
//# sourceMappingURL=useAI.d.ts.map