import Koa, { Context, DefaultState, Request as KoaRequest } from 'koa'; import { Container } from './container'; import { AppMiddleware } from './middleware'; export interface AuthUser { username?: string | null; id?: string | number | symbol | null; authenticated: boolean; access_token?: string | null; isAnonymous(): boolean; } export interface AuthenticatedUser extends AuthUser { username: string; id: string | number | symbol; authenticated: true; } export interface Request
extends KoaRequest { body?: Body; } export interface AppState