/**
 * Skip Proxy Agent
 *
 * A proxy agent that integrates Skip SaaS API into the MemberJunction agent framework.
 * This agent acts as a bridge, allowing Skip to be invoked like any other MJ agent
 * while maintaining compatibility with the existing Skip infrastructure.
 */
import { BaseAgent } from "@memberjunction/ai-agents";
import { ExecuteAgentParams, AgentConfiguration, BaseAgentNextStep } from "@memberjunction/ai-core-plus";
import { SkipAPIResponse } from "@memberjunction/skip-types";
import { DataContext } from "@memberjunction/data-context";
/**
 * Context type for Skip agent execution
 */
export interface SkipAgentContext {
    /**
     * Optional data context ID to load
     */
    dataContextId?: string;
    /**
     * Optional pre-loaded data context
     */
    dataContext?: DataContext;
    /**
     * Conversation ID for tracking Skip conversations
     */
    conversationId?: string;
    /**
     * Force entity metadata refresh
     */
    forceEntityRefresh?: boolean;
    /**
     * Database connection (injected by caller)
     */
    dataSource?: any;
}
/**
 * Payload returned from Skip agent execution
 * Contains the full Skip API response for downstream consumers
 */
export interface SkipAgentPayload {
    /**
     * The full Skip API response
     */
    skipResponse: SkipAPIResponse;
    /**
     * Response phase from Skip
     */
    responsePhase: string;
    /**
     * Conversation ID
     */
    conversationId: string;
    /**
     * User-facing message (title or clarifying question)
     */
    message?: string;
}
/**
 * Skip Proxy Agent
 *
 * This agent provides a simple proxy to the Skip SaaS API, allowing Skip to be
 * invoked through the standard MJ agent framework. It handles:
 * - Converting MJ conversation messages to Skip format
 * - Streaming progress updates from Skip
 * - Mapping Skip responses to MJ agent next steps
 * - Returning full Skip responses in the payload
 */
export declare class SkipProxyAgent extends BaseAgent {
    private skipSDK;
    constructor();
    /**
     * Execute the Skip agent - proxies to Skip SaaS API
     */
    protected executeAgentInternal<P = SkipAgentPayload>(params: ExecuteAgentParams<SkipAgentContext, P>, config: AgentConfiguration): Promise<{
        finalStep: BaseAgentNextStep<P>;
        stepCount: number;
    }>;
    /**
     * Load conversation messages from database with real UUIDs using MemberJunction's RunView pattern
     * This is the preferred method as it ensures all messages have proper conversationDetailIDs
     */
    private loadMessagesFromDatabase;
    /**
     * Convert MJ ChatMessage format to Skip SkipMessage format
     * This is a fallback method when database loading is not available
     */
    private convertMessagesToSkipFormat;
    /**
     * Map Skip API response to MJ agent next step
     */
    private mapSkipResponseToNextStep;
    private tempHack;
}
//# sourceMappingURL=skip-agent.d.ts.map