import type { ChatMessage } from '../types/ChatMessage';
import type { ChatParticipant } from '../types/ChatParticipant';
import type { LlmChatProps } from './LlmChatProps';
/**
 * Metadata for a teammate agent tool.
 *
 * @private function of `useLlmChatState`
 */
type TeammateMetadata = {
    readonly url: string;
    readonly label?: string;
    readonly instructions?: string;
    readonly toolName: string;
};
/**
 * Lookup map of teammate metadata by tool name.
 *
 * @private function of `useLlmChatState`
 */
type TeammatesMap = Record<string, TeammateMetadata>;
/**
 * Minimal task-progress item rendered by `<Chat/>`.
 *
 * @private function of `useLlmChatState`
 */
type LlmChatTaskProgress = {
    readonly id: string;
    readonly name: string;
    readonly progress?: number;
};
/**
 * State returned by `useLlmChatState`.
 *
 * @private function of `useLlmChatState`
 */
type UseLlmChatStateResult = {
    readonly handleMessage: (messageContent: string, attachments?: ChatMessage['attachments']) => Promise<void>;
    readonly handleReset: () => Promise<void>;
    readonly handleStopStreaming: () => void;
    readonly isStreaming: boolean;
    readonly isVoiceCalling: boolean;
    readonly messages: Array<ChatMessage>;
    readonly participants: ReadonlyArray<ChatParticipant>;
    readonly tasksProgress: Array<LlmChatTaskProgress>;
    readonly teammates: TeammatesMap | undefined;
};
/**
 * Coordinates derived state and handlers consumed by `<LlmChat/>`.
 *
 * @private function of `<LlmChat/>`
 */
export declare function useLlmChatState(props: LlmChatProps): UseLlmChatStateResult;
export {};
