import { a as StorageElementType } from './StorageElementType-DkJ394kq.js'; /** * StoredClassModel is a abstract class that contains the methods to store a class in the game. * I suggest you extend this class to create your own stored class. * @example * ```typescript * export class CharacterBaseModel extends StoredClassModel implements CharacterBaseModelProps { * constructor(id: string, props: CharacterBaseModelProps) { * super("___character___", id) * this.defaultName = props.name * this.defaultSurname = props.surname * } * private defaultName: string = "" * get name(): string { * return this.getStorageProperty("name") || this.defaultName * } * set name(value: string) { * this.setStorageProperty("name", value) * } * private defaultSurname?: string * get surname(): string | undefined { * return this.getStorageProperty("surname") || this.defaultSurname * } * set surname(value: string | undefined) { * this.setStorageProperty("surname", value) * } * } * ``` */ declare class StoredClassModel { /** * @param categoryId The id of the category. For example if you are storing a character class, you can use "characters" as categoryId. so all instances of the character class will be stored in the "characters" category. * @param id The id of instance of the class. This id must be unique for the category. */ constructor(categoryId: string, id: string); protected migrateOldStorage(oldCategoryId?: string): void; /** * Is id of the stored class. is unique for this class. */ readonly id: string; private categoryId; /** * @deprecated Remove the type parameter, it is not needed and it is not used in the implementation. */ protected setStorageProperty(propertyName: string, value: StorageElementType): void; /** * Get a property from the storage. * @param propertyName The name of the property to get. * @param idToUse The id of the instance to get the property. @default this.id * @returns The value of the property. If the property is not found, returns undefined. */ protected getStorageProperty(propertyName: string, idToUse?: string): T | undefined; } export { StoredClassModel as S };