import type { LTApiResult, LTApiAuth } from '../../types/sdk';
/**
 * List registered MCP servers with optional filtering and pagination.
 *
 * @param input.status — filter by server status (e.g. 'active', 'inactive')
 * @param input.auto_connect — filter by auto-connect setting
 * @param input.search — free-text search across server names and descriptions
 * @param input.tags — filter to servers matching any of these tags
 * @param input.limit — maximum number of results to return
 * @param input.offset — pagination offset
 * @returns `{ status: 200, data: { ... } }` paginated list of MCP server records
 */
export declare function listMcpServers(input: {
    status?: string;
    auto_connect?: boolean;
    search?: string;
    tags?: string[];
    limit?: number;
    offset?: number;
}): Promise<LTApiResult>;
/**
 * Register a new MCP server.
 *
 * Returns 409 if a server with the same name already exists.
 *
 * @param input.name — unique display name for the server (required)
 * @param input.description — optional human-readable description
 * @param input.transport_type — transport protocol, e.g. 'sse', 'stdio' (required)
 * @param input.transport_config — transport-specific connection settings (required)
 * @param input.auto_connect — whether to connect automatically on startup
 * @param input.metadata — arbitrary key-value metadata
 * @param input.tags — tags for categorization and filtering
 * @param input.compile_hints — optional hints used during tool compilation
 * @param input.credential_providers — OAuth/credential provider identifiers required by this server
 * @returns `{ status: 201, data: { ... } }` the created MCP server record
 */
export declare function createMcpServer(input: {
    name: string;
    description?: string;
    transport_type: string;
    transport_config: Record<string, any>;
    auto_connect?: boolean;
    metadata?: Record<string, any>;
    tags?: string[];
    compile_hints?: any;
    credential_providers?: string[];
}): Promise<LTApiResult>;
/**
 * Test connectivity to an MCP server without persisting it.
 *
 * Attempts to establish a connection using the provided transport
 * configuration and returns the result. On failure, returns a
 * successful (200) response with `success: false` and the error message.
 *
 * @param input.transport_type — transport protocol to test (required)
 * @param input.transport_config — transport-specific connection settings (required)
 * @returns `{ status: 200, data: { success, error?, tools } }` connection test result
 */
export declare function testConnection(input: {
    transport_type: string;
    transport_config: Record<string, any>;
}): Promise<LTApiResult>;
/**
 * Retrieve a single MCP server by ID.
 *
 * @param input.id — the MCP server identifier
 * @returns `{ status: 200, data: { ... } }` the MCP server record, or 404 if not found
 */
export declare function getMcpServer(input: {
    id: string;
}): Promise<LTApiResult>;
/**
 * Update fields on an existing MCP server.
 *
 * Accepts any subset of mutable server fields alongside the required ID.
 *
 * @param input.id — the MCP server identifier (required)
 * @param input.[key] — any mutable server field to update (name, description, transport_config, etc.)
 * @returns `{ status: 200, data: { ... } }` the updated server record, or 404 if not found
 */
export declare function updateMcpServer(input: {
    id: string;
    [key: string]: any;
}): Promise<LTApiResult>;
/**
 * Delete an MCP server by ID.
 *
 * @param input.id — the MCP server identifier
 * @returns `{ status: 200, data: { deleted: true } }` on success, or 404 if not found
 */
export declare function deleteMcpServer(input: {
    id: string;
}): Promise<LTApiResult>;
/**
 * Establish a live connection to a registered MCP server.
 *
 * Requires the MCP adapter to be registered in the registry.
 *
 * @param input.id — the MCP server identifier to connect
 * @returns `{ status: 200, data: { connected, serverId } }` confirmation of the connection
 */
export declare function connectMcpServer(input: {
    id: string;
}): Promise<LTApiResult>;
/**
 * Disconnect a live MCP server connection.
 *
 * Requires the MCP adapter to be registered in the registry.
 *
 * @param input.id — the MCP server identifier to disconnect
 * @returns `{ status: 200, data: { disconnected, serverId } }` confirmation of the disconnection
 */
export declare function disconnectMcpServer(input: {
    id: string;
}): Promise<LTApiResult>;
/**
 * Check which credential providers are registered vs missing for an MCP server.
 *
 * Resolves each credential provider required by the server against the
 * authenticated user's stored credentials.
 *
 * @param input.id — the MCP server identifier
 * @param auth — authenticated user context used to resolve credentials
 * @returns `{ status: 200, data: { required, registered, missing } }` credential status arrays
 */
export declare function getCredentialStatus(input: {
    id: string;
}, auth?: LTApiAuth): Promise<LTApiResult>;
