import { BCSymbolReference } from '../types/bc-types.js';
interface StreamingSymbolIndex {
    runtimeVersion: string;
    objectIndex: Map<string, ObjectMetadata>;
    totalObjects: number;
    loadedObjects: number;
}
interface ObjectMetadata {
    objectType: string;
    objectId: number;
    name: string;
    namespace: string;
    offset: number;
    size: number;
    loaded: boolean;
}
export declare class StreamingSymbolParser {
    private symbolIndex;
    private rawData;
    constructor();
    /**
     * Parse symbols with progressive loading - builds index first, loads objects on demand
     */
    parseSymbolsProgressive(symbolsBuffer: Buffer): Promise<StreamingSymbolIndex>;
    /**
     * Build a lightweight index of all objects without loading their full data
     */
    private buildObjectIndex;
    /**
     * Load specific object on demand
     */
    loadObject(objectType: string, objectId: number, objectName: string): Promise<any>;
    /**
     * Load objects of a specific type on demand
     */
    loadObjectsByType(objectType: string): Promise<any[]>;
    /**
     * Get object metadata without loading full object
     */
    getObjectMetadata(objectType: string, objectId?: number, objectName?: string): ObjectMetadata[];
    /**
     * Get loading statistics
     */
    getLoadingStats(): {
        total: number;
        loaded: number;
        percentage: number;
    };
    /**
     * Create minimal compatible symbol reference for existing code
     */
    createLazySymbolReference(): BCSymbolReference;
    private createLazyNamespace;
    private isObjectArray;
    private getObjectTypeFromPath;
    private createObjectMetadata;
    private parseObjectAtOffset;
}
export {};
//# sourceMappingURL=streaming-parser.d.ts.map