import { L as LocationInterface, C as CommitmentInterface } from '../../RoomInterface-DURfkQ7u.mjs';
import RoomBaseModelProps from '../../interface/navigation/RoomBaseModelProps.mjs';
import RoomStoredClass from './RoomStoredClass.mjs';
import '@drincs/nqtr';
import '@drincs/pixi-vn';
import '../../interface/ActivityInterface.mjs';
import '../../types/ExecutionType.mjs';
import '../../interface/navigation/NavigationAbstractClass.mjs';
import './NavigationAbstractClass.mjs';

/**
 * The base model of a room. I suggest you extend this class to create your own room model.
 * **You must use the {@link saveRoom} function to save the room in the registered rooms.**
 * @example
 * ```ts
 * export const mcRoom = new RoomBaseModel('mc_room', mcHome, {
 *     name: "MC Room",
 *     icon: "https://icon.jpg",
 *     image: "https://image.jpg",
 * })
 * saveRoom(mcRoom)
 * ```
 */
declare class RoomBaseModel extends RoomStoredClass {
    /**
     * @param id The id of the room, it must be unique.
     * @param location The location where the room is.
     * @param props The properties of the room.
     */
    constructor(id: string, location: LocationInterface, props?: RoomBaseModelProps);
    private defaultName;
    /**
     * The name.
     * If you set undefined, it will return the initial value of name.
     */
    get name(): string;
    set name(value: string | undefined);
    private _image?;
    /**
     * The image of the room.
     */
    get image(): string | undefined;
    private defaultDisabled;
    /**
     * Whether is disabled. If it is a string, it is a Pixi'VN flag name.
     */
    get disabled(): boolean;
    set disabled(value: boolean | string);
    private defaultHidden;
    /**
     * Whether is hidden. If it is a string, it is a Pixi'VN flag name.
     */
    get hidden(): boolean;
    set hidden(value: boolean | string);
    private _icon?;
    /**
     * The function for rendering the icon of the room.
     */
    get icon(): string | undefined;
    /**
     * Get the character commitments of the room.
     * @returns The character commitments of the room.
     */
    get routine(): CommitmentInterface[];
}

export { RoomBaseModel as default };
