import type { KnowledgeObjectProfilePolicy } from '../extensions.js';
import type { KnowledgeEdgeRecord, KnowledgeNodeRecord, KnowledgeSourceRecord } from '../types.js';
export declare const BASE_OBJECT_PROFILES: readonly KnowledgeObjectProfilePolicy[];
export declare function linkedObjectsForSource(sourceId: string, edges: readonly KnowledgeEdgeRecord[], nodesById: ReadonlyMap<string, KnowledgeNodeRecord>): KnowledgeNodeRecord[];
export declare function factsForSource(sourceId: string, edges: readonly KnowledgeEdgeRecord[], nodesById: ReadonlyMap<string, KnowledgeNodeRecord>): KnowledgeNodeRecord[];
export declare function sourcesForObject(objectId: string, edges: readonly KnowledgeEdgeRecord[], sourcesById: ReadonlyMap<string, KnowledgeSourceRecord>): KnowledgeSourceRecord[];
export declare function factsForObject(objectId: string, edges: readonly KnowledgeEdgeRecord[], nodesById: ReadonlyMap<string, KnowledgeNodeRecord>): KnowledgeNodeRecord[];
export declare function isConcreteRepairSubject(node: KnowledgeNodeRecord, objectProfiles: readonly KnowledgeObjectProfilePolicy[]): boolean;
export declare function matchingObjectProfiles(nodes: readonly KnowledgeNodeRecord[], objectProfiles: readonly KnowledgeObjectProfilePolicy[]): readonly KnowledgeObjectProfilePolicy[];
export declare function hasSpecificIdentity(subject: KnowledgeNodeRecord, source?: KnowledgeSourceRecord): boolean;
export declare function factCoverage(facts: readonly KnowledgeNodeRecord[]): {
    readonly coreFactCount: number;
    readonly coveredAreas: Set<string>;
};
export declare function isUsableSelfImprovementFact(fact: KnowledgeNodeRecord, subjectIds?: ReadonlySet<string>): boolean;
export declare function repairTargetFactCount(gap: KnowledgeNodeRecord): number;
export declare function subjectTitle(subject: KnowledgeNodeRecord): string;
export declare function uniqueById<T extends {
    readonly id: string;
}>(items: readonly (T | undefined)[]): T[];
//# sourceMappingURL=self-improvement-graph.d.ts.map