/**
 * Null Checker
 *
 * Phase 2b: Null Safety Analysis
 *
 * Validates that use<T> (weak/borrowed references) are properly
 * null-checked before use.
 *
 * Rules:
 * - use<T> is implicitly nullable (T | null | undefined)
 * - Must be checked before property access or method calls
 * - Validates control flow to track null state
 */
import ts from 'typescript';
import type { Diagnostic } from '../types.js';
export declare class NullChecker {
    private diagnostics;
    /**
     * Analyze a source file for null safety
     */
    analyze(sourceFile: ts.SourceFile, checker: ts.TypeChecker): Diagnostic[];
    /**
     * Visit a node and check for null safety violations
     */
    private visitNode;
    /**
     * Check if property access is safe
     */
    private checkPropertyAccess;
    /**
     * Check if call expression is safe
     */
    private checkCallExpression;
    /**
     * Handle if statement null checks
     */
    private handleIfStatement;
    /**
     * Extract variables that are null-checked in an expression
     */
    private extractNullChecks;
    /**
     * Check if a type is use<T>
     */
    private isUseType;
    /**
     * Get source location from node
     */
    private getLocation;
}
//# sourceMappingURL=null-checker.d.ts.map