import { type FC, type PropsWithChildren, type ComponentType } from "react";
import type { ThreadListRuntimeCore } from "../../runtime/interfaces/thread-list-runtime-core.js";
import type { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
import { BaseSubscribable } from "../../subscribable/subscribable.js";
type RemoteThreadListHook = () => AssistantRuntime;
export declare class RemoteThreadListHookInstanceManager extends BaseSubscribable {
    private useRuntimeHook;
    private instances;
    private useAliveThreadsKeysChanged;
    private parent;
    constructor(runtimeHook: RemoteThreadListHook, parent: ThreadListRuntimeCore);
    startThreadRuntime(threadId: string): Promise<Readonly<{
        getMessageById: (messageId: string) => {
            parentId: string | null;
            message: import("../..").ThreadMessage;
            index: number;
        } | undefined;
        getBranches: (messageId: string) => readonly string[];
        switchToBranch: (branchId: string) => void;
        append: (message: import("../..").AppendMessage) => void;
        startRun: (config: import("../..").StartRunConfig) => void;
        resumeRun: (config: import("../..").ResumeRunConfig) => void;
        cancelRun: () => void;
        addToolResult: (options: import("../..").AddToolResultOptions) => void;
        resumeToolCall: (options: import("../..").ResumeToolCallOptions) => void;
        speak: (messageId: string) => void;
        stopSpeaking: () => void;
        connectVoice: () => void;
        disconnectVoice: () => void;
        muteVoice: () => void;
        unmuteVoice: () => void;
        submitFeedback: (feedback: import("../..").SubmitFeedbackOptions) => void;
        getModelContext: () => import("../..").ModelContext;
        composer: import("../..").ThreadComposerRuntimeCore;
        getEditComposer: (messageId: string) => import("../..").EditComposerRuntimeCore | undefined;
        beginEdit: (messageId: string) => void;
        speech: import("../..").SpeechState | undefined;
        voice: import("../..").VoiceSessionState | undefined;
        capabilities: Readonly<import("../..").RuntimeCapabilities>;
        isDisabled: boolean;
        isLoading: boolean;
        isRunning?: boolean | undefined;
        messages: readonly import("../..").ThreadMessage[];
        state: import("assistant-stream/utils").ReadonlyJSONValue;
        suggestions: readonly import("../..").ThreadSuggestion[];
        extras: unknown;
        subscribe: (callback: () => void) => import("../..").Unsubscribe;
        getVoiceVolume: () => number;
        subscribeVoiceVolume: (callback: () => void) => import("../..").Unsubscribe;
        import(repository: import("../..").ExportedMessageRepository): void;
        export(): import("../..").ExportedMessageRepository;
        exportExternalState(): any;
        importExternalState(state: any): void;
        reset(initialMessages?: readonly import("../..").ThreadMessageLike[]): void;
        unstable_on<E extends import("../..").ThreadRuntimeEventType>(event: E, callback: import("../..").ThreadRuntimeEventCallback<E>): import("../..").Unsubscribe;
        unstable_loadExternalState: (state: any) => void;
    }>>;
    getThreadRuntimeCore(threadId: string): Readonly<{
        getMessageById: (messageId: string) => {
            parentId: string | null;
            message: import("../..").ThreadMessage;
            index: number;
        } | undefined;
        getBranches: (messageId: string) => readonly string[];
        switchToBranch: (branchId: string) => void;
        append: (message: import("../..").AppendMessage) => void;
        startRun: (config: import("../..").StartRunConfig) => void;
        resumeRun: (config: import("../..").ResumeRunConfig) => void;
        cancelRun: () => void;
        addToolResult: (options: import("../..").AddToolResultOptions) => void;
        resumeToolCall: (options: import("../..").ResumeToolCallOptions) => void;
        speak: (messageId: string) => void;
        stopSpeaking: () => void;
        connectVoice: () => void;
        disconnectVoice: () => void;
        muteVoice: () => void;
        unmuteVoice: () => void;
        submitFeedback: (feedback: import("../..").SubmitFeedbackOptions) => void;
        getModelContext: () => import("../..").ModelContext;
        composer: import("../..").ThreadComposerRuntimeCore;
        getEditComposer: (messageId: string) => import("../..").EditComposerRuntimeCore | undefined;
        beginEdit: (messageId: string) => void;
        speech: import("../..").SpeechState | undefined;
        voice: import("../..").VoiceSessionState | undefined;
        capabilities: Readonly<import("../..").RuntimeCapabilities>;
        isDisabled: boolean;
        isLoading: boolean;
        isRunning?: boolean | undefined;
        messages: readonly import("../..").ThreadMessage[];
        state: import("assistant-stream/utils").ReadonlyJSONValue;
        suggestions: readonly import("../..").ThreadSuggestion[];
        extras: unknown;
        subscribe: (callback: () => void) => import("../..").Unsubscribe;
        getVoiceVolume: () => number;
        subscribeVoiceVolume: (callback: () => void) => import("../..").Unsubscribe;
        import(repository: import("../..").ExportedMessageRepository): void;
        export(): import("../..").ExportedMessageRepository;
        exportExternalState(): any;
        importExternalState(state: any): void;
        reset(initialMessages?: readonly import("../..").ThreadMessageLike[]): void;
        unstable_on<E extends import("../..").ThreadRuntimeEventType>(event: E, callback: import("../..").ThreadRuntimeEventCallback<E>): import("../..").Unsubscribe;
        unstable_loadExternalState: (state: any) => void;
    }> | undefined;
    stopThreadRuntime(threadId: string): void;
    setRuntimeHook(newRuntimeHook: RemoteThreadListHook): void;
    private _RuntimeBinder;
    private _OuterActiveThreadProvider;
    __internal_RenderThreadRuntimes: FC<{
        provider: ComponentType<PropsWithChildren>;
    }>;
}
export {};
//# sourceMappingURL=RemoteThreadListHookInstanceManager.d.ts.map