import type { OccEntityBlameResult, OccEntityContextResult, OccEntityDiffResult, OccEntityFreshness, OccEntityHistoryResult, OccEntityImpactResult, OccEntityIndexStatus, OccEntityRef } from './api-types.js';
import type { EntityBounds } from './types.js';
import type { EntityHotspotResult } from './hotspots.js';
import type { EntityCochangeResult } from './cochange.js';
import type { EntityDriftResult } from './drift.js';
import type { CaptureEntityAnchorResult } from './anchor-verify.js';
import type { EntityCacheMeta, EntityStoreFreshness } from './store.js';
import type { CacheInventory } from '../cache-management.js';
/**
 * Compact text renderings.
 *
 * These are the fallback representation for clients that consume text rather
 * than structured content, so they stay terse and stable: one entity per line,
 * facts only, no colour and no box drawing.
 */
export declare function formatEntityRef(ref: OccEntityRef): string;
export declare function formatEntityList(refs: readonly OccEntityRef[]): string;
export declare function formatEntityDiff(result: OccEntityDiffResult): string;
export declare function formatEntityImpact(result: OccEntityImpactResult): string;
export declare function formatEntityBlame(result: OccEntityBlameResult): string;
export declare function formatEntityHistory(result: OccEntityHistoryResult): string;
export declare function formatEntityHotspots(result: EntityHotspotResult): string;
export declare function formatEntityCochange(result: EntityCochangeResult): string;
export declare function formatEntityDrift(result: EntityDriftResult): string;
/**
 * What the index covers, and whether it still describes the repository.
 *
 * Leads with truncation and staleness because those are the two facts that
 * change how every other answer should be read: an empty result from a starved
 * or stale index is not a fact about the repository.
 */
export declare function formatEntityStatus(status: OccEntityIndexStatus, freshness: OccEntityFreshness, bounds: EntityBounds, cache?: CacheInventory): string;
/** Cheap, persisted-cache view used by `occ code status` without opening an index. */
export interface EntityCacheStatus {
    mode: 'metadata';
    cachePresent: boolean;
    cacheDir: string | null;
    fresh: boolean;
    head?: string;
    indexedHead?: string;
    commitCount?: number;
    lineageCount?: number;
    eventCount?: number;
    truncated?: boolean;
    builtAt?: string;
    /** Present only when no matching cache exists. */
    coldBuildMaxCommits?: number;
    cache?: CacheInventory;
}
export declare function createEntityCacheStatus(meta: EntityCacheMeta | null, freshness: EntityStoreFreshness, cacheDir: string | undefined, maxCommits: number, cache?: CacheInventory): EntityCacheStatus;
export declare function formatEntityCacheStatus(status: EntityCacheStatus): string;
export declare function formatEntityContext(result: OccEntityContextResult): string;
export declare function formatAnchorCapture(result: CaptureEntityAnchorResult): string;
