import { type InjectionKey, type Ref } from 'vue';
import type { AIAttachment, AIMessage } from '../../../types/ai';
type AIStreamReturn = {
    branch: (messageId: string, content: string) => void;
    cancel: () => void;
    destroy: () => void;
    error: Ref<string | null>;
    isStreaming: Ref<boolean>;
    messages: Ref<AIMessage[]>;
    send: (content: string, attachments?: AIAttachment[]) => void;
};
export declare const AIStreamKey: InjectionKey<AIStreamReturn>;
export declare const useAIStream: (path: string, conversationId?: string) => {
    branch: (messageId: string, content: string) => void;
    cancel: () => void;
    destroy: () => void;
    error: Ref<string | null, string | null>;
    isStreaming: Ref<boolean, boolean>;
    messages: import("vue").ShallowRef<AIMessage[], AIMessage[]>;
    send: (content: string, attachments?: AIAttachment[]) => void;
};
export {};
