import { HerdClient } from "../HerdClient.js";
import cors from "cors";
export interface TrailServerTransportConfig {
    type: "http" | "mcp-stdio" | "mcp-sse";
    port?: number;
    path?: string;
    cors?: boolean | cors.CorsOptions;
}
export interface TrailServerOptions {
    name: string;
    version: string;
    description?: string;
    transports: TrailServerTransportConfig[];
    trails: string[];
    autoBuild?: boolean;
    silent?: boolean;
    cacheEnabled?: boolean;
    includeOrgPrefix?: boolean;
    abridge?: boolean;
    maxResponseLength?: number;
}
export declare class TrailServer {
    private client;
    private mcpServer;
    private transports;
    private trails;
    private expressApp?;
    private httpServer?;
    private sseTransport?;
    private stdioTransport?;
    private autoBuild;
    private silent;
    private cacheEnabled;
    private includeOrgPrefix;
    private usingStdioTransport;
    private abridge;
    private maxResponseLength;
    private toolNameMappings;
    private loadedTrails;
    private logDir;
    private outputLogPath;
    private errorLogPath;
    constructor(client: HerdClient, options: TrailServerOptions);
    /**
     * Check if transports include mcp-stdio
     */
    private hasStdioTransport;
    /**
     * Setup log directory and files
     */
    private setupLogDirectory;
    /**
     * Append a log entry to a log file, respecting size limits
     */
    private logToFile;
    /**
     * Truncate log file if it exceeds the maximum size
     */
    private truncateLogIfNeeded;
    /**
     * Safe logging that respects silent mode and stdio transport
     */
    private log;
    /**
     * Error logging that respects stdio transport
     * (errors should be logged unless using stdio transport)
     */
    private logError;
    /**
     * Load a trail and convert its actions to MCP tools
     */
    private loadTrailAndRegisterTools;
    /**
     * Register a trail action as an MCP tool
     */
    private registerActionAsTool;
    /**
     * Initialize HTTP transport
     */
    private initializeHttpTransport;
    /**
     * Initialize MCP STDIO transport
     */
    private initializeMcpStdioTransport;
    /**
     * Initialize MCP SSE transport
     */
    private initializeMcpSseTransport;
    /**
     * Start the trail server
     */
    start(): Promise<void>;
    /**
     * Stop the trail server
     */
    stop(): Promise<void>;
    /**
     * Check if a path is a local trail directory
     */
    private isLocalTrailDirectory;
    /**
     * Calculate the total text length in a response
     */
    private calculateTextLength;
    /**
     * Abridge content recursively to fit within the limit
     */
    private abridgeContent;
    /**
     * Process response to ensure it fits within the limit
     */
    private processResponseForSizeLimit;
}
