import { FindOnticArgs, IFindBaseArgs, } from '../querying/FindModelArgs'; import { ILocationModel, } from './ILocationModel'; import { IModel, } from './IModel'; import { IModelConstructorArgs, } from './IModelConstructorArgs'; import { IOntology, } from '../ontology/IOntology'; import { IWorld, } from '../world/IWorld'; import { ModelBase, } from './ModelBase'; import { ModelType, } from './ModelType'; import { OnticTypes, } from '../ontology/OnticTypes'; import { Ontology, } from '../ontology/Ontology'; export class LocationModel< Being extends OnticTypes, > extends ModelBase implements ILocationModel { protected readonly __being: IOntology; public get being() { return this.__being; } public get knowledge() { return null; } public get type(): ModelType.Location { return ModelType.Location; } constructor( world: IWorld, args: IModelConstructorArgs, ) { super(world, args); this.__being = new Ontology< ModelType.Location, Being >(world, { modelType: args.type }); } readonly find: ( args: string | IFindBaseArgs & FindOnticArgs, ) => IModel | null; readonly findAll: ( args: '*' | IFindBaseArgs & FindOnticArgs, ) => readonly IModel[]; readonly findAllGenerator: ( args: '*' | IFindBaseArgs & FindOnticArgs, ) => IterableIterator>; }