import { Character, Spec, User, Class } from "../../Types/Types"
import { SpecT } from "../../Types/PlayerSpecs"


export class ICharacterManager{
    createCharacter: (usertoken: string, char : Character) => Promise<Character>
    getSpecId: <c extends keyof SpecT>(clazz: c, name: SpecT[c]) => Promise<number>
    getCharacters: () => Promise<(Character & Spec & User)[]>
    getCharacterByName: (charactername: string) => Promise<(Character & User & Spec) | void>
    getCharactersOfUser: (username: string) => Promise<(Character & Spec)[]>
    getUserOfCharacter: (character:Character) => Promise<User>
    getHeadCount: (clazz: Class) => Promise<number>
    updateCharacter: (character: Character) => Promise<Character>

}