/**
 * Shared Visualization Utilities (PRD #320)
 *
 * Common utilities for visualization support across all MCP tools.
 * Provides session metadata interfaces, URL generation, and prompt selection.
 */
import { VisualizationType, VisualizationResponse } from '../interfaces/rest-api';
/**
 * Visualization mode prefix - when present in intent, return visualization data directly
 * Used by tools to detect when caller wants visualization output instead of summary
 */
export declare const VISUALIZATION_PREFIX = "[visualization]";
/**
 * Cached visualization structure stored in sessions
 * PRD #320: Added toolsUsed for test validation of mermaid validation
 */
export interface CachedVisualization {
    title: string;
    visualizations: Array<{
        id: string;
        label: string;
        type: VisualizationType;
        content: unknown;
    }>;
    insights: string[];
    toolsUsed?: string[];
    generatedAt: string;
}
/**
 * Base interface for visualization session data
 * All tools should include these fields for visualization support
 */
export interface BaseVisualizationData {
    /** Tool that created this session: 'query' | 'recommend' | 'remediate' | etc. */
    toolName: string;
    /** Optional stage for multi-stage tools (e.g., 'recommend', 'generateManifests') */
    stage?: string;
    /** Cached visualization to avoid re-generation */
    cachedVisualization?: CachedVisualization;
}
/**
 * Supported tool names for visualization
 */
export type VisualizationToolName = 'query' | 'recommend' | 'remediate' | 'operate' | 'version' | 'projectSetup';
/**
 * Get the prompt file name for visualization
 * All tools use the unified visualize.md template (PRD #320)
 *
 * @param toolName - Name of the tool (unused, kept for API compatibility)
 * @returns Prompt file name (without .md extension)
 */
export declare function getPromptForTool(_toolName: string): string;
/**
 * Get visualization URL if WEB_UI_BASE_URL is configured
 * Feature toggle - only returns URL when env var is set
 *
 * @param sessionIds - Single session ID or array of session IDs to include in URL
 * @returns Visualization URL or undefined if not configured
 */
export declare function getVisualizationUrl(sessionIds: string | string[]): string | undefined;
/**
 * Extract the session prefix from a session ID
 * Session IDs are formatted: {prefix}-{timestamp}-{uuid}
 *
 * @param sessionId - Full session ID (e.g., 'qry-1704067200000-a1b2c3d4')
 * @returns Session prefix (e.g., 'qry')
 */
export declare function extractPrefixFromSessionId(sessionId: string): string;
/**
 * Session prefixes used by each tool
 * Useful for documentation and validation
 */
export declare const TOOL_SESSION_PREFIXES: Record<string, string>;
/**
 * Get the tool name from a session prefix
 * Reverse lookup from prefix to tool name
 *
 * @param prefix - Session prefix (e.g., 'qry')
 * @returns Tool name or undefined if not recognized
 */
export declare function getToolNameFromPrefix(prefix: string): string | undefined;
/**
 * Parse AI response into VisualizationResponse
 * Extracts JSON from AI response, validates structure, normalizes insights
 *
 * @param aiResponse - Raw AI response string
 * @param toolsUsed - Optional array of tools used during generation
 * @returns Parsed VisualizationResponse
 * @throws Error if parsing or validation fails
 */
export declare function parseVisualizationResponse(aiResponse: string, toolsUsed?: string[]): VisualizationResponse;
//# sourceMappingURL=visualization.d.ts.map