import type { LTMcpServerRecord, LTMcpServerStatus, LTMcpToolManifest } from '../../types';
import type { CreateMcpServerInput } from './types';
export declare function createMcpServer(input: CreateMcpServerInput): Promise<LTMcpServerRecord>;
export declare function getMcpServer(id: string): Promise<LTMcpServerRecord | null>;
export declare function getMcpServerByName(name: string): Promise<LTMcpServerRecord | null>;
export declare function updateMcpServer(id: string, updates: Partial<Pick<CreateMcpServerInput, 'name' | 'description' | 'transport_type' | 'transport_config' | 'auto_connect' | 'metadata' | 'tags' | 'compile_hints' | 'credential_providers'>>): Promise<LTMcpServerRecord | null>;
export declare function deleteMcpServer(id: string): Promise<boolean>;
export declare function updateMcpServerStatus(id: string, status: LTMcpServerStatus, toolManifest?: LTMcpToolManifest[]): Promise<void>;
export declare function listMcpServers(filters: {
    status?: LTMcpServerStatus;
    auto_connect?: boolean;
    search?: string;
    tags?: string[];
    limit?: number;
    offset?: number;
}): Promise<{
    servers: LTMcpServerRecord[];
    total: number;
}>;
export declare function getAutoConnectServers(): Promise<LTMcpServerRecord[]>;
/**
 * Find MCP servers by tags.
 * @param tags - Tags to filter by
 * @param match - 'any' (OR — server has at least one tag) or 'all' (AND — server has all tags)
 */
export declare function findServersByTags(tags: string[], match?: 'any' | 'all'): Promise<LTMcpServerRecord[]>;
/**
 * Seed an MCP server at startup (insert-if-absent).
 * DB is the source of truth — if the row already exists, log drift warnings
 * but do not overwrite. Returns true if inserted, false if already existed.
 */
export declare function seedMcpServer(input: {
    name: string;
    description?: string;
    tags?: string[];
    category?: string;
    compileHints?: string;
    credentialProviders?: string[];
    toolManifest?: any[];
}): Promise<boolean>;
/**
 * Remove builtin MCP servers that are no longer declared in factory config.
 */
export declare function cleanStaleBuiltinServers(activeNames: string[]): Promise<void>;
