import type { KnownProblem } from "$models/internal/KnownProblem"; import type { Writable } from "svelte/store"; export interface IAccountService { session: Writable, login_async(payload: LoginPayload): Promise, logout_async(): Promise, end_session_async(callback?: Function): Promise, create_account_async(payload: CreateAccountPayload): Promise, delete_current_async(): Promise, update_current_async(payload: UpdateAccountPayload): Promise, } export type Session = { username: string, displayName: string, id: string, _lastUpdated: number } export type LoginPayload = { username: string, password: string, persist: boolean } export type LoginResponse = { isLoggedIn: boolean, knownProblem?: KnownProblem } export type CreateAccountPayload = { username: string, password: string, } export type CreateAccountResponse = { isCreated: boolean, knownProblem?: KnownProblem } export type DeleteAccountResponse = { isDeleted: boolean } export type UpdateAccountPayload = { username: string, password: string } export type UpdateAccountResponse = { isUpdated: boolean, knownProblem?: KnownProblem }