import type { CommentService } from './comment-service.js';
/**
 * Comments live in SQLite for throughput, but agents should see them as
 * first-class typed entities just like notes, projects, etc. This adapter
 * shapes a Comment row into the same `{ id, entityType, data, content }`
 * envelope that file-backed entities use, so generic MCP tools (`get_entity`,
 * `list_entities`, `find_related`) can return comments without per-type
 * branches in the tool code itself.
 *
 * The shape mirrors what `wm.getGraph(repo).get(...)` returns from
 * filesystem entities: `id` is the comment_id (used in MCP URIs), `entityType`
 * is the literal ‘comment’, `data` is frontmatter-flat with comment metadata,
 * and `content` is the comment body.
 */
export interface VirtualEntityEnvelope {
    id: string;
    entityType: 'comment';
    data: Record<string, unknown>;
    document: {
        content: string;
        wikilinks: string[];
    };
}
export declare function getComment(commentService: CommentService, commentId: string): VirtualEntityEnvelope | null;
export declare function listComments(commentService: CommentService, opts?: {
    repo?: string;
    entryType?: string;
    entryId?: string;
    resolved?: boolean;
    limit?: number;
}): VirtualEntityEnvelope[];
/**
 * Comments anchored to a given entry — exposed as backlinks of that entry
 * so `find_related` includes them naturally.
 */
export declare function findRelatedComments(commentService: CommentService, repo: string, entityType: string, entityId: string): VirtualEntityEnvelope[];
