import { LangGraphClient, LangGraphClientConfig, RenderMessage, SendMessageOptions } from "../LangGraphClient.js";
import { AssistantGraph, Message, Thread } from "@langchain/langgraph-sdk";
import { UnionTool } from "../tool/createTool.js";
import { RevertChatToOptions } from "../time-travel/index.js";
import { History, SessionInfo } from "../History.js";
import { InterruptData } from "../humanInTheLoop.js";
export declare const formatTime: (date: Date) => string;
export declare const formatFullTime: (date: Date) => string;
export declare const formatTokens: (tokens: number) => string;
export declare const getMessageContent: (content: any) => string;
export declare const getHistoryContent: (thread: Thread) => string | any[];
interface ChatStoreContext {
    showHistory?: boolean;
    showGraph?: boolean;
    fallbackToAvailableAssistants?: boolean;
    onInit?: (client: LangGraphClient) => void;
    /** 初始化时是否自动激活最近的历史会话（默认 false，创建新会话） */
    autoRestoreLastSession?: boolean;
    /** 历史记录筛选的默认参数 */
    historyFilter?: Partial<HistoryFilter>;
    /** UI 更新的防抖时间（毫秒，默认 10） */
    debounceTime?: number;
}
export interface HistoryPagination {
    page: number;
    pageSize: number;
    total: number;
}
export interface HistoryFilter {
    metadata: Record<string, any> | null;
    status: "idle" | "busy" | "interrupted" | "error" | null;
    sortBy: "thread_id" | "status" | "created_at" | "updated_at";
    sortOrder: "asc" | "desc";
}
export declare const createChatStore: (initClientName: string, config: Partial<LangGraphClientConfig>, context?: ChatStoreContext) => {
    data: {
        artifacts: import("nanostores").PreinitializedWritableAtom<import("../artifacts/index.js").ComposedArtifact[]> & object;
        currentArtifactId: import("nanostores").PreinitializedWritableAtom<[string, string] | null> & object;
        showArtifact: import("nanostores").PreinitializedWritableAtom<boolean> & object;
        client: import("nanostores").PreinitializedWritableAtom<LangGraphClient<unknown> | null> & object;
        history: import("nanostores").PreinitializedWritableAtom<History | null> & object;
        sessions: import("nanostores").PreinitializedWritableAtom<SessionInfo[]> & object;
        renderMessages: import("nanostores").PreinitializedWritableAtom<RenderMessage[]> & object;
        userInput: import("nanostores").PreinitializedWritableAtom<string> & object;
        loading: import("nanostores").PreinitializedWritableAtom<boolean> & object;
        inChatError: import("nanostores").PreinitializedWritableAtom<string | null> & object;
        currentAgent: import("nanostores").PreinitializedWritableAtom<string> & object;
        currentChatId: import("nanostores").PreinitializedWritableAtom<string | null> & object;
        currentNodeName: import("nanostores").PreinitializedWritableAtom<string> & object;
        currentStatus: import("nanostores").PreinitializedWritableAtom<string> & object;
        interruptData: import("nanostores").PreinitializedWritableAtom<InterruptData | null> & object;
        isInterrupted: import("nanostores").PreinitializedWritableAtom<boolean> & object;
        tools: import("nanostores").PreinitializedWritableAtom<UnionTool<any, Object, any>[]> & object;
        collapsedTools: import("nanostores").PreinitializedWritableAtom<string[]> & object;
        showGraph: import("nanostores").PreinitializedWritableAtom<boolean> & object;
        graphVisualize: import("nanostores").PreinitializedWritableAtom<AssistantGraph | null> & object;
        showHistory: import("nanostores").PreinitializedWritableAtom<boolean> & object;
        historyList: import("nanostores").PreinitializedWritableAtom<Thread<{
            messages: Message[];
        }, unknown>[]> & object;
        historyPagination: import("nanostores").PreinitializedWritableAtom<HistoryPagination> & object;
        historyFilter: import("nanostores").PreinitializedWritableAtom<HistoryFilter> & object;
    };
    mutations: {
        setCurrentArtifactById: (id: string, tool_id: string) => void;
        setShowArtifact: (show: boolean) => void;
        initClient: () => Promise<History>;
        getClient: () => LangGraphClient<unknown> | null;
        getHistory: () => History | null;
        activateSession: (sessionId: string, mustResetStream?: boolean) => Promise<void>;
        createNewSession: () => Promise<void>;
        refreshSessionList: () => Promise<void>;
        refreshHistoryList: () => Promise<void>;
        sendMessage: (message?: Message[], options?: SendMessageOptions, withoutCheck?: boolean, isResume?: boolean) => Promise<void>;
        stopGeneration: () => void;
        setUserInput: (input: string) => void;
        revertChatTo(messageId: string, resend?: boolean, sendOptions?: SendMessageOptions & RevertChatToOptions): Promise<void>;
        refreshTools: () => Promise<void>;
        setTools(new_tools: UnionTool<any>[]): void;
        toggleToolCollapse: (toolId: string) => void;
        getToolUIRender: (tool_name: string) => ((message: RenderMessage) => Object) | null;
        isFELocking: () => boolean | undefined;
        toggleHistoryVisible: () => void;
        toggleGraphVisible(): void;
        refreshGraph: () => Promise<void>;
        setCurrentAgent(agent: string): Promise<History>;
        resumeFromInterrupt(data: any): Promise<void>;
        addToHistory: (thread: Thread<{
            messages: Message[];
        }>) => void;
        createNewChat(metadata?: Record<string, any>): Promise<void>;
        toHistoryChat: (thread: Thread<{
            messages: Message[];
        }>) => Promise<void>;
        deleteHistoryChat(thread: Thread<{
            messages: Message[];
        }>): Promise<void>;
        setHistoryPage(page: number): void;
        setHistoryPageSize(pageSize: number): void;
        setHistoryFilter(filter: Partial<HistoryFilter>): void;
        resetHistoryFilter(): void;
    };
};
export {};
