export interface LatestRequestTicket { readonly generation: number readonly snapshot: T } export interface LatestRequestGuard { next(snapshot: T): LatestRequestTicket invalidate(): number isLatest(ticket: LatestRequestTicket): boolean } export function createLatestRequestGuard(): LatestRequestGuard