/** * Main Bio-Inspired Perception Engine * Integrates all bio-inspired components for efficient AR processing */ export class BioInspiredEngine { /** * @param {number} width - Input image width * @param {number} height - Input image height * @param {Object} options - Configuration options */ constructor(width: number, height: number, options?: Object); width: number; height: number; config: { constructor: Function; toString(): string; toLocaleString(): string; valueOf(): Object; hasOwnProperty(v: PropertyKey): boolean; isPrototypeOf(v: Object): boolean; propertyIsEnumerable(v: PropertyKey): boolean; FOVEA_RADIUS_RATIO: number; PARAFOVEA_RADIUS_RATIO: number; FOVEA_RESOLUTION: number; PARAFOVEA_RESOLUTION: number; PERIPHERY_RESOLUTION: number; MAX_SACCADES_PER_FRAME: number; SACCADE_COOLDOWN_MS: number; SALIENCY_THRESHOLD: number; CHANGE_THRESHOLD: number; PREDICTION_CONFIDENCE: number; MOTION_HISTORY_FRAMES: number; ENABLE_SKIP_FRAMES: boolean; MIN_PROCESSING_INTERVAL_MS: number; NUM_OCTAVES: number; }; fovealAttention: FovealAttention; saccadicController: SaccadicController; predictiveCoding: PredictiveCoding; saliencyMap: SaliencyMap; scaleOrchestrator: ScaleOrchestrator; currentFoveaCenter: { x: number; y: number; }; frameCount: number; lastProcessTime: number; skipCount: number; metrics: { totalFrames: number; skippedFrames: number; avgPixelsProcessed: number; avgLatency: number; saccadeCount: number; }; /** * Initialize pre-allocated buffers for efficient processing * @private */ private _initBuffers; outputBuffer: { fovea: Uint8Array; parafovea: Uint8Array; periphery: Uint8Array; } | undefined; changeBuffer: Float32Array | undefined; /** * Process an input frame using bio-inspired techniques * * @param {Uint8Array} inputData - Grayscale input image * @param {Object} trackingState - Current tracking state (optional) * @returns {Object} Processed result with attention regions */ process(inputData: Uint8Array, trackingState?: Object): Object; /** * Get the primary attention region (highest resolution) * This is the region that should be used for feature detection * * @param {Object} processResult - Result from process() * @returns {Object} Primary attention region with data */ getPrimaryRegion(processResult: Object): Object; /** * Suggest optimal processing based on change detection * * @param {Uint8Array} inputData - Current frame * @returns {Object} Processing suggestion */ suggestProcessing(inputData: Uint8Array): Object; /** * Update performance metrics * @private */ private _updateMetrics; /** * Get current performance metrics * @returns {Object} Performance metrics */ getMetrics(): Object; /** * Reset engine state (e.g., when target changes) */ reset(): void; /** * Configure engine at runtime * @param {Object} options - Configuration options to update */ configure(options: Object): void; } export namespace BIO_CONFIG { let FOVEA_RADIUS_RATIO: number; let PARAFOVEA_RADIUS_RATIO: number; let FOVEA_RESOLUTION: number; let PARAFOVEA_RESOLUTION: number; let PERIPHERY_RESOLUTION: number; let MAX_SACCADES_PER_FRAME: number; let SACCADE_COOLDOWN_MS: number; let SALIENCY_THRESHOLD: number; let CHANGE_THRESHOLD: number; let PREDICTION_CONFIDENCE: number; let MOTION_HISTORY_FRAMES: number; let ENABLE_SKIP_FRAMES: boolean; let MIN_PROCESSING_INTERVAL_MS: number; let NUM_OCTAVES: number; } import { FovealAttention } from './foveal-attention.js'; import { SaccadicController } from './saccadic-controller.js'; import { PredictiveCoding } from './predictive-coding.js'; import { SaliencyMap } from './saliency-map.js'; import { ScaleOrchestrator } from './scale-orchestrator.js';