/**
 * Ownership Analyzer
 *
 * Phase 2a: DAG (Directed Acyclic Graph) Analysis
 *
 * Validates ownership semantics:
 * 1. Detects cycles in share<T> relationships (prevents memory leaks)
 * 2. Validates ownership derivation rules (prevents logic errors)
 * 3. Ensures class fields have proper ownership annotations
 *
 * Rules:
 * - share<T> creates an ownership edge (A → B)
 * - Cycles in the ownership graph are forbidden
 * - own<T> → only use<T> derivation allowed
 * - share<T> → share<T> or use<T> allowed
 * - use<T> → only use<T> allowed
 */
import ts from 'typescript';
import type { Diagnostic } from '../types.js';
export declare class OwnershipAnalyzer {
    private graph;
    private diagnostics;
    /**
     * Analyze a source file for ownership relationships
     */
    analyze(sourceFile: ts.SourceFile, checker: ts.TypeChecker): void;
    /**
     * Finalize analysis after all files processed
     */
    finalize(): Diagnostic[];
    /**
     * Reset analyzer state
     */
    reset(): void;
    /**
     * Collect all type declarations (classes, interfaces)
     */
    private collectTypeNodes;
    /**
     * Collect ownership edges from share<T> fields
     */
    private collectOwnershipEdges;
    /**
     * Analyze a property for share<T> ownership
     */
    private analyzeProperty;
    /**
     * Add an ownership edge to the graph
     */
    private addEdge;
    /**
     * Detect cycles using DFS
     */
    private detectCycles;
    /**
     * Report a detected cycle
     */
    private reportCycle;
    /**
     * Get the containing class name
     */
    private getContainingClass;
    /**
     * Get source location from node
     */
    private getLocation;
}
//# sourceMappingURL=ownership-analyzer.d.ts.map