import CharacterInterface from '../interface/CharacterInterface.cjs';

declare const registeredCharacters: {
    [id: string]: CharacterInterface;
};
/**
 * Is a function that saves the character. If the character already exists, it will be overwritten.
 * @param character is the character to save
 * @returns
 * @example
 * ```typescript
 * export const liam = new CharacterBaseModel('liam', { name: 'Liam'});
 * export const alice = new CharacterBaseModel('alice', { name: 'Alice'});
 * saveCharacter([liam, alice]);
 * ```
 */
declare function saveCharacter<T extends CharacterInterface = CharacterInterface>(character: T | T[]): void;
/**
 * is a function that returns the character by the id
 * @param id is the id of the character
 * @returns the character
 * @example
 * ```typescript
 * const liam = getCharacterById('liam');
 * ```
 */
declare function getCharacterById<T extends CharacterInterface>(id: string): T | undefined;
/**
 * is a function that returns all characters
 * @returns all characters
 * @example
 * ```typescript
 * const allCharacters = getAllCharacters();
 * ```
 */
declare function getAllCharacters<T extends CharacterInterface>(): T[];

export { getAllCharacters, getCharacterById, registeredCharacters, saveCharacter };
