/**
 * Entity Reference Resolver
 *
 * Resolves parsed EntityRefs to TrellisVCS entities by querying
 * the EAV store, tracked files, semantic parser, milestones, and identities.
 *
 * @see TRL-12
 */
import type { EntityRef, ResolvedRef } from './types.js';
/**
 * Abstract interface for the engine capabilities the resolver needs.
 * This allows testing with mocks without a real TrellisVcsEngine.
 */
export interface ResolverContext {
    /** Get a tracked file by path. Returns true if the file exists in the op stream. */
    hasTrackedFile(path: string): boolean;
    /** Look up an issue by ID (e.g. "TRL-5"). Returns title if found. */
    getIssueTitle(id: string): string | undefined;
    /** Look up a milestone by ID or message fragment. Returns message if found. */
    getMilestoneTitle(idOrMessage: string): string | undefined;
    /** Check if a symbol exists in a file. Returns true if found. */
    hasSymbol(filePath: string, symbolName: string): boolean;
    /** Check if an identity/agent ID exists. Returns true if known. */
    hasIdentity(id: string): boolean;
    /** List all known agent IDs (from ops). */
    getKnownAgentIds(): string[];
    /** List all tracked file paths. */
    getTrackedFilePaths(): string[];
    /** List all issue IDs. */
    getIssueIds(): string[];
    /** List all milestone IDs. */
    getMilestoneIds(): string[];
    /** Check if a decision exists by ID (e.g. "DEC-1"). */
    hasDecision(id: string): boolean;
    /** Get a decision's tool name as a human-readable title. */
    getDecisionTitle(id: string): string | undefined;
    /** Get all symbol names for a file. */
    getSymbolNames(filePath: string): string[];
}
/**
 * Resolve a single EntityRef against the resolver context.
 */
export declare function resolveRef(ref: EntityRef, ctx: ResolverContext): ResolvedRef;
/**
 * Resolve multiple EntityRefs in batch.
 */
export declare function resolveRefs(refs: EntityRef[], ctx: ResolverContext): ResolvedRef[];
/**
 * Minimal engine interface for building a ResolverContext.
 * Accepts anything that quacks like TrellisVcsEngine.
 */
export interface Enginelike {
    trackedFiles(): Array<{
        path: string;
        contentHash: string | undefined;
    }>;
    getIssue(id: string): {
        title?: string;
    } | null;
    listIssues(filters?: any): Array<{
        id: string;
    }>;
    listMilestones(): Array<{
        id: string;
        message?: string;
    }>;
    parseFile(content: string, filePath: string): {
        declarations: Array<{
            name: string;
        }>;
    } | null;
    getOps(): Array<{
        agentId: string;
    }>;
    getRootPath(): string;
    getDecision?(id: string): {
        id: string;
        toolName: string;
    } | null;
    queryDecisions?(filter?: any): Array<{
        id: string;
        toolName: string;
    }>;
}
/**
 * Build a ResolverContext from an engine-like object.
 * The symbol resolution reads files from disk and parses them.
 */
export declare function createResolverContext(engine: Enginelike): ResolverContext;
//# sourceMappingURL=resolver.d.ts.map