import { AiConnectState, IChatSummary, ICodingTurn, IQwenpawSessionStatus } from '../services/qwenpaw/qwenpaw.type'; /** The UI-facing contract — implemented by the store, consumed by widgets. */ export interface IQwenpawChatController { chats: IChatSummary[]; /** Turns of the active conversation (reactive getter). */ turns: ICodingTurn[]; isLoadingChats: boolean; isStreaming: boolean; errorMessage: string; connectState: AiConnectState; status: () => Promise; ensureConnection: () => Promise; connect: () => Promise; loadChats: () => Promise; openChat: (chat: IChatSummary) => Promise; newChat: () => void; send: (text: string, files?: File[]) => Promise; stop: () => void; deleteChat: (chatId: string) => Promise; } export declare const useQwenpawChat: () => IQwenpawChatController; /** Raw store escape hatch (full turns list, resendLast…). */ export declare const useQwenpawChatStoreRaw: () => import('pinia').Store<"qwenpawChat", Pick<{ chats: import('vue').Ref<{ id: string; name: string; sessionId: string; updatedAt: string; status?: string | undefined; groupId?: string | undefined; }[], IChatSummary[] | { id: string; name: string; sessionId: string; updatedAt: string; status?: string | undefined; groupId?: string | undefined; }[]>; groups: import('vue').Ref<{ id: string; name: string; order: number; kind: string; }[], import('..').IChatGroup[] | { id: string; name: string; order: number; kind: string; }[]>; agentId: import('vue').Ref; model: import('vue').Ref; isLoadingChats: import('vue').Ref; activeSession: import('vue').Ref; activeChatId: import('vue').Ref; activeChatName: import('vue').Ref; turns: import('vue').Ref<{ id: string; role: "user" | "assistant"; text: string; ts?: number | undefined; streaming?: boolean | undefined; error?: string | undefined; files?: { name: string; size?: number | undefined; }[] | undefined; }[], ICodingTurn[] | { id: string; role: "user" | "assistant"; text: string; ts?: number | undefined; streaming?: boolean | undefined; error?: string | undefined; files?: { name: string; size?: number | undefined; }[] | undefined; }[]>; status: import('vue').Ref<"error" | "idle" | "streaming", "error" | "idle" | "streaming">; isStreaming: import('vue').ComputedRef; errorMessage: import('vue').Ref; connectState: import('vue').Ref; probeConnection: () => Promise; connect: () => Promise; ensureConnection: () => Promise; aiConnectStateFromError: (error: unknown) => AiConnectState; loadChats: () => Promise; openChat: (chat: IChatSummary) => Promise; newChat: () => void; send: (text: string, files?: File[]) => Promise; stop: () => void; resendLast: () => void; clearError: () => void; deleteChat: (chatId: string) => Promise; }, "status" | "model" | "errorMessage" | "groups" | "chats" | "agentId" | "isLoadingChats" | "activeSession" | "activeChatId" | "activeChatName" | "turns" | "connectState">, Pick<{ chats: import('vue').Ref<{ id: string; name: string; sessionId: string; updatedAt: string; status?: string | undefined; groupId?: string | undefined; }[], IChatSummary[] | { id: string; name: string; sessionId: string; updatedAt: string; status?: string | undefined; groupId?: string | undefined; }[]>; groups: import('vue').Ref<{ id: string; name: string; order: number; kind: string; }[], import('..').IChatGroup[] | { id: string; name: string; order: number; kind: string; }[]>; agentId: import('vue').Ref; model: import('vue').Ref; isLoadingChats: import('vue').Ref; activeSession: import('vue').Ref; activeChatId: import('vue').Ref; activeChatName: import('vue').Ref; turns: import('vue').Ref<{ id: string; role: "user" | "assistant"; text: string; ts?: number | undefined; streaming?: boolean | undefined; error?: string | undefined; files?: { name: string; size?: number | undefined; }[] | undefined; }[], ICodingTurn[] | { id: string; role: "user" | "assistant"; text: string; ts?: number | undefined; streaming?: boolean | undefined; error?: string | undefined; files?: { name: string; size?: number | undefined; }[] | undefined; }[]>; status: import('vue').Ref<"error" | "idle" | "streaming", "error" | "idle" | "streaming">; isStreaming: import('vue').ComputedRef; errorMessage: import('vue').Ref; connectState: import('vue').Ref; probeConnection: () => Promise; connect: () => Promise; ensureConnection: () => Promise; aiConnectStateFromError: (error: unknown) => AiConnectState; loadChats: () => Promise; openChat: (chat: IChatSummary) => Promise; newChat: () => void; send: (text: string, files?: File[]) => Promise; stop: () => void; resendLast: () => void; clearError: () => void; deleteChat: (chatId: string) => Promise; }, "isStreaming">, Pick<{ chats: import('vue').Ref<{ id: string; name: string; sessionId: string; updatedAt: string; status?: string | undefined; groupId?: string | undefined; }[], IChatSummary[] | { id: string; name: string; sessionId: string; updatedAt: string; status?: string | undefined; groupId?: string | undefined; }[]>; groups: import('vue').Ref<{ id: string; name: string; order: number; kind: string; }[], import('..').IChatGroup[] | { id: string; name: string; order: number; kind: string; }[]>; agentId: import('vue').Ref; model: import('vue').Ref; isLoadingChats: import('vue').Ref; activeSession: import('vue').Ref; activeChatId: import('vue').Ref; activeChatName: import('vue').Ref; turns: import('vue').Ref<{ id: string; role: "user" | "assistant"; text: string; ts?: number | undefined; streaming?: boolean | undefined; error?: string | undefined; files?: { name: string; size?: number | undefined; }[] | undefined; }[], ICodingTurn[] | { id: string; role: "user" | "assistant"; text: string; ts?: number | undefined; streaming?: boolean | undefined; error?: string | undefined; files?: { name: string; size?: number | undefined; }[] | undefined; }[]>; status: import('vue').Ref<"error" | "idle" | "streaming", "error" | "idle" | "streaming">; isStreaming: import('vue').ComputedRef; errorMessage: import('vue').Ref; connectState: import('vue').Ref; probeConnection: () => Promise; connect: () => Promise; ensureConnection: () => Promise; aiConnectStateFromError: (error: unknown) => AiConnectState; loadChats: () => Promise; openChat: (chat: IChatSummary) => Promise; newChat: () => void; send: (text: string, files?: File[]) => Promise; stop: () => void; resendLast: () => void; clearError: () => void; deleteChat: (chatId: string) => Promise; }, "stop" | "send" | "probeConnection" | "connect" | "ensureConnection" | "aiConnectStateFromError" | "loadChats" | "openChat" | "newChat" | "resendLast" | "clearError" | "deleteChat">>; //# sourceMappingURL=useQwenpawChat.d.ts.map