import "./twofactor";

type LoginState {
   success: boolean;
   username?: string;
   password?: boolean;
   passwordSalt?: string;
   requireTwoFactor?: TFAOption[];
}


service LoginService {
   GetState(): LoginState;
   Start(username: string): LoginState;
   UsePassword(password_hash: string, date: int): LoginState;

   UseTOTP(id: string, code: string): LoginState;
   UseBackupCode(id: string, code:string): LoginState;
   GetWebAuthnChallenge(id: string): string;
   UseWebAuthn(id: string, response: string): LoginState;
}
