import { AgentConfig , AgentTrackingInformation } from "./agent_config" ; import { QAction } from "./q/qaction" ; import { QTransition } from "./q/qtransition" ; const DEFAULT_AGENT_CONFIG = { memorySize : 30000 } ; export abstract class AbstractAgent { protected agentConfig : AgentConfig ; protected constructor ( agentConfig ? , private name ? ) { this . agentConfig = { ... DEFAULT_AGENT_CONFIG , ... agentConfig } ; } abstract get AgentConfig ( ) : AgentConfig ; protected setAgentConfig ( config ) { this . agentConfig = config ; } get Name ( ) { return this . name ; } set Name ( name ) { this . name = name ; } abstract getTrackingInformation ( ) ; abstract reset ( ) ; abstract infer ( input , epsilon ? , keepTensors ? ) ; }