import { Raid, Signup, Character, RaidData, User, Spec } from "../../Types/Types"

export class IRaidManager{
    getRaids: () => Promise<Raid[]>
    createRaid: (raid:Raid) => Promise<any>
    addSignup: (signup: Signup) => Promise<any>
    removeSignup: (signup: Signup) => Promise<any>    
    getSignups: (raid:Raid) => Promise<(Signup & Character & Spec & User)[]>
    sign: (userToken: string, character:Character, raid:Raid, late:boolean) => Promise<any>
    unsign: (userToken: string, character:Character, raid:Raid,) => Promise<any>
    archiveRaid: (raid:Raid) => Promise<RaidData>
    getRaidData: (raid:Raid) => Promise<RaidData>
    setBenched: (signup: Signup) => Promise<void>
    getPastRaids: (limit: number) => Promise<RaidData[]>
    getArchiveRaid: (id:number) => Promise<RaidData>
    startRaid: (raid:Raid) => Promise<RaidData>
}
