export interface FileHash {
    path: string;
    hash: string;
}
export interface FileMetadata {
    path: string;
    mtime: number;
    size: number;
}
export interface SpecAnnotation {
    specId: string;
    criteria: number[];
    description: string;
    file: string;
    line: number;
    raw: string;
}
export interface DriftResult {
    foundKeywords: string[];
    fileCount: number;
}
export interface DuplicateBlockLocationRs {
    path: string;
    startLine: number;
    endLine: number;
    lines: string[];
}
export interface DuplicateRawBlockRs {
    hash: string;
    locations: DuplicateBlockLocationRs[];
}
export interface FastGrepMatch {
    pattern: string;
    path: string;
    line: number;
    column: number;
    content: string;
}
export interface FileContent {
    path: string;
    content: string;
}
export interface AmbiguousCriterionRs {
    specId: string;
    specTitle: string;
    criterionText: string;
    score: number;
    reason: string;
}
export interface SpecBriefRs {
    id: string;
    title: string;
    status: string;
    specType: string;
    specPath: string;
    dependencies: string[];
    needsUnified: boolean;
    needsLean: boolean;
    qualityScore: number;
    ambiguousCriteria: AmbiguousCriterionRs[];
    lastModified: string;
    hasTests: boolean;
    healthScore: number;
}
export interface GapsLogChainResultRs {
    valid: boolean;
    totalEntries: number;
    brokenAt: number | null;
}
export interface SearchResult {
    id: string;
    similarity: number;
}
export interface VectorNode {
    id: string;
    vector: number[];
}
export interface PlanuCore {
    hashProjectPath(projectPath: string): string;
    isSafeProjectId(projectId: string): boolean;
    getProjectDataPath(baseDir: string, project_id: string): string | null;
    scanAndHashFiles(rootPath: string): FileHash[];
    scanProjectMetadata(rootPath: string): FileMetadata[];
    scanSpecAnnotations(rootPath: string): SpecAnnotation[];
    checkAcCoverage(filePaths: string[], keywords: string[]): string[];
    fastDetectDriftParallel(rootPath: string, keywords: string[]): DriftResult;
    fastFindDuplicateBlocks(paths: string[], minLines: number): DuplicateRawBlockRs[];
    fastFindPatterns(rootPath: string, patterns: string[], extensions: string[], exclude: string[]): FastGrepMatch[];
    fastFindFilesByName(rootPath: string, names: string[]): string[];
    fastFindFilesByExt(rootPath: string, extensions: string[]): string[];
    fastReadFiles(paths: string[]): FileContent[];
    fastScanSpecs(rootPath: string): SpecBriefRs[];
    fastVerifyGapsChain(filePath: string): GapsLogChainResultRs;
    fastAppendGapEntry(filePath: string, id: string, timestamp: string, specId: string, description: string, severity: string, affectedSpecs: string[]): string;
    fastCosineSimilarity(v1: number[], v2: number[]): number;
    fastHnswSearchFlat(query: number[], nodes: VectorNode[], topK: number): SearchResult[];
    fastHmacSign(secret: string, data: string): string;
    fastHmacVerify(secret: string, data: string, signature: string): boolean;
    startProjectWatcher(rootPath: string, callback: (err: Error | null, event: string) => void): void;
}
//# sourceMappingURL=core-bridge.d.ts.map