import * as poseDetection from '@tensorflow-models/pose-detection'; import { IAgentRuntime } from '@elizaos/core'; import { DetectedObject, PersonInfo } from './types'; export interface VisionModelConfig { enableObjectDetection?: boolean; enablePoseDetection?: boolean; florence2?: { baseUrl: string; apiKey?: string; }; vlm?: { model: string; temperature: number; maxTokens: number; }; } export type Pose = 'sitting' | 'standing' | 'lying' | 'walking' | 'unknown'; export interface PoseLandmark { name: string; x: number; y: number; score: number; } export declare class VisionModels { private runtime; private config; private objectDetectionModel; private poseDetector; private initialized; private florence2Model; private cocoSsdModel; private posenetModel; constructor(runtime: IAgentRuntime, config?: VisionModelConfig); initialize(config: VisionModelConfig): Promise; hasObjectDetection(): boolean; hasPoseDetection(): boolean; detectObjects(imageData: Buffer, width: number, height: number, description?: string): Promise; private enhancedObjectDetection; private generatePlausibleBoundingBox; detectPoses(imageData: Buffer, width: number, height: number, description?: string): Promise; private enhancedPoseDetection; private generatePlausibleKeypoints; convertPosesToPersonInfo(poses: poseDetection.Pose[]): PersonInfo[]; private determinePoseFromKeypoints; private determineFacingDirection; dispose(): Promise; }