import type { Unsubscribe } from "../../types/unsubscribe.js";
import type { ModelContextProvider } from "../../model-context/types.js";
import type { AssistantRuntimeCore } from "../interfaces/assistant-runtime-core.js";
import type { ThreadRuntime } from "./thread-runtime.js";
import { type ThreadListRuntime, ThreadListRuntimeImpl } from "./thread-list-runtime.js";
import type { ThreadMessageLike } from "../utils/thread-message-like.js";
export type AssistantRuntime = {
    /**
     * The threads in this assistant.
     */
    readonly threads: ThreadListRuntime;
    /**
     * The currently selected main thread. Equivalent to `threads.main`.
     */
    readonly thread: ThreadRuntime;
    /**
     * @deprecated This field was renamed to `threads`.
     */
    readonly threadList: ThreadListRuntime;
    /**
     * Switch to a new thread.
     *
     * @deprecated This method was moved to `threads.switchToNewThread`.
     */
    switchToNewThread(): void;
    /**
     * Switch to a thread.
     *
     * @param threadId The thread ID to switch to.
     * @deprecated This method was moved to `threads.switchToThread`.
     */
    switchToThread(threadId: string): void;
    /**
     * Register a model context provider. Model context providers are configuration such as system message, temperature, etc. that are set in the frontend.
     *
     * @param provider The model context provider to register.
     */
    registerModelContextProvider(provider: ModelContextProvider): Unsubscribe;
    /**
     * @deprecated This method was renamed to `registerModelContextProvider`.
     */
    registerModelConfigProvider(provider: ModelContextProvider): Unsubscribe;
    /**
     * @deprecated Use `runtime.thread.reset(initialMessages)`.
     */
    reset: unknown;
};
export declare class AssistantRuntimeImpl implements AssistantRuntime {
    private readonly _core;
    readonly threads: ThreadListRuntimeImpl;
    get threadList(): ThreadListRuntimeImpl;
    readonly _thread: ThreadRuntime;
    constructor(_core: AssistantRuntimeCore);
    protected __internal_bindMethods(): void;
    get thread(): ThreadRuntime;
    switchToNewThread(): Promise<void>;
    switchToThread(threadId: string): Promise<void>;
    registerModelContextProvider(provider: ModelContextProvider): Unsubscribe;
    registerModelConfigProvider(provider: ModelContextProvider): Unsubscribe;
    reset({ initialMessages, }?: {
        initialMessages?: ThreadMessageLike[];
    }): void;
}
//# sourceMappingURL=assistant-runtime.d.ts.map