import { AgentChat, AgentProcessSummary, AgentArtifact, SendMessagePayload, StreamChunk, MessagesPage } from '../types';
import { GetMessagesOptions, AgentTransport, ActivityTreeNode, UpsertAgentPreferencesRequest, UpsertAgentPreferencesResponse, UpsertAgentPreferencesBatchRequest, UpsertAgentPreferencesBatchResponse } from './AgentTransport';
import { Activity, AgentConfiguration, ActivitySummary, ActivitySummaryParams, AgentMessage, AgentToolCallStatus, DataWithCursor, MultiUserMessagePayload, MultiUserMessageResponse, SortOrder, ModelOption } from '@multiplayer-app/ai-agent-types';
import { ProxyTransportConfig } from '../../config/types';

export declare class ProxyTransport implements AgentTransport {
    private config;
    private streamControllers;
    private socketId?;
    constructor(config: ProxyTransportConfig);
    updateConfig(next: ProxyTransportConfig): void;
    /**
     * Set the Socket.IO socket ID to exclude from Socket.IO updates
     */
    setSocketId(socketId: string | undefined): void;
    private withHeaders;
    private formatHttpError;
    private request;
    sendMessage(payload: SendMessagePayload): Promise<AgentChat>;
    streamMessage(payload: SendMessagePayload, onChunk: (chunk: StreamChunk) => void, options?: {
        streamKey?: string;
    }): Promise<{
        id: string;
        messages: AgentMessage[];
    } | void>;
    sendMultiUserMessage(payload: MultiUserMessagePayload): Promise<MultiUserMessageResponse>;
    cancelStream(streamKey?: string): void;
    cancelHttpStream(streamKey?: string): void;
    listChats(params?: {
        contextKey?: string;
        skip?: number;
        limit?: number;
        userId?: string;
        multiUser?: boolean;
        sortField?: string;
        sortOrder?: 'asc' | 'desc';
    }): Promise<DataWithCursor<AgentChat>>;
    getChat(chatId: string): Promise<AgentChat>;
    getMessages(chatId: string, options?: GetMessagesOptions): Promise<MessagesPage>;
    deleteChat(chatId: string): Promise<void>;
    listAgents(): Promise<AgentProcessSummary[]>;
    controlAgent(options: {
        id: string;
        action: 'stop' | 'resume' | 'retry';
    }): Promise<AgentProcessSummary>;
    listArtifacts(chatId: string): Promise<AgentArtifact[]>;
    listActivities(params?: {
        groupId?: string;
        parentId?: string;
        sourceType?: string;
        skip?: number;
        limit?: number;
        sort?: {
            field: string;
            order: SortOrder;
        };
        from?: string;
        to?: string;
        tenant?: Record<string, string> | {
            all?: boolean;
        };
        ownerId?: string;
    }): Promise<DataWithCursor<Activity>>;
    listActivitySourceTypes(params?: {
        groupId?: string;
        parentId?: string;
        from?: string;
        to?: string;
        tenant?: Record<string, string> | {
            all?: boolean;
        };
        ownerId?: string;
    }): Promise<string[]>;
    getActivity(activityId: string): Promise<ActivityTreeNode | null>;
    getActivitySummary(params?: ActivitySummaryParams): Promise<ActivitySummary[]>;
    recordToolCallAction(chatId: string, input: {
        toolCallId: string;
        action: string;
        data?: Record<string, unknown>;
        systemMessage?: string;
    }, options?: {
        excludeSocketId?: boolean;
    }): Promise<Record<string, unknown> | void>;
    updateToolCall(input: {
        chatId: string;
        messageId: string;
        toolCallId: string;
        input?: Record<string, unknown>;
        output?: Record<string, unknown>;
        status?: AgentToolCallStatus;
    }, options?: {
        excludeSocketId?: boolean;
    }): Promise<AgentMessage>;
    generateTitle(input: {
        content: string;
        contextKey: string;
        userId?: string;
        strategy?: 'local' | 'llm';
    }): Promise<string>;
    listModels(): Promise<ModelOption[]>;
    listAgentConfigurations(contextKey?: string): Promise<AgentConfiguration[]>;
    upsertAgentPreferences(agentName: string, input: UpsertAgentPreferencesRequest): Promise<UpsertAgentPreferencesResponse>;
    upsertAgentPreferencesBatch(input: UpsertAgentPreferencesBatchRequest): Promise<UpsertAgentPreferencesBatchResponse>;
}
//# sourceMappingURL=ProxyTransport.d.ts.map