import { type AssistantSession, type Project, type Work } from '../types';
interface UseAssistantApiProps {
    tenantAiAgentId: string;
    deploymentId?: string;
    logo?: string;
    title?: string;
    t: (key: string) => string;
}
interface UseAssistantApiReturn {
    agentDetails: {
        logo?: string;
        name?: string;
        welcomeMessage?: string;
    } | null;
    /**
     * Agent identifier (deploymentId || tenantAiAgentId) that `agentDetails`,
     * `subagents`, and `agentTools` correspond to. Consumers can compare this
     * against the active agent id to avoid rendering stale data while a refetch
     * is in flight after the active agent changes.
     */
    agentDetailsForId: string | null;
    isLoadingAgentDetails: boolean;
    /**
     * Combined list of subagents reachable from this orchestrator (direct
     * children + connected subagents), normalized so each has `id` and `name`.
     * Used by the SubagentTool to render avatars / names / step templates for
     * `call*Agent` tool calls.
     */
    subagents: Array<Record<string, any>>;
    /**
     * Tool metadata for the active agent (and its direct sub-agents). Used by
     * the renderer to resolve `outputRenderType` / `outputRenderTemplate` for
     * an in-flight tool call (e.g. switch to AdaptiveCard rendering).
     */
    agentTools: Array<Record<string, any>>;
    /** Set when the active agent needs consent (not yet given); `null` once satisfied. */
    consentRequiredFor: {
        agentId: string;
        deploymentId?: string;
    } | null;
    setConsentRequiredFor: (value: {
        agentId: string;
        deploymentId?: string;
    } | null) => void;
    fetchThreads: () => Promise<AssistantSession[]>;
    fetchProjectThreads: (projectId: string) => Promise<AssistantSession[]>;
    loadThreadMessages: (threadId: string) => Promise<any[]>;
    createThread: (params: {
        subject: string;
        bodyText: string;
        senderName: string;
        projectId?: string | null;
    }) => Promise<any>;
    fetchProjects: () => Promise<Project[]>;
    createProject: (params: {
        name: string;
        description?: string;
        instructions?: string;
    }) => Promise<Project | null>;
    updateProject: (projectId: string, params: {
        name?: string;
        description?: string;
        instructions?: string;
    }) => Promise<boolean>;
    deleteProject: (projectId: string) => Promise<boolean>;
    fetchWorks: () => Promise<Work[]>;
    fetchProjectWorks: (projectId: string) => Promise<Work[]>;
    updateSession: (sessionId: string, subject: string) => Promise<boolean>;
    deleteSession: (sessionId: string) => Promise<boolean>;
}
export declare function useAssistantApi({ tenantAiAgentId, deploymentId, logo, title, t }: UseAssistantApiProps): UseAssistantApiReturn;
export {};
