namespace KGS { export class DataDigest { public timestamp : Date = new Date ( ) ; public perfstamp : number = performance . now ( ) ; public username : boolean = false ; public joinedChannelIds : boolean = false ; public joinFailedChannelIds : number [ ] ; public notifyChannelId : number ; public channels : { [ channelId ] : boolean ; } = { } ; public touchChannel ( channelId ) { this . channels [ channelId ] = true ; } public channelOwners : { [ channelId ] : boolean ; } = { } ; public touchChannelOwners ( channelId ) { this . channelOwners [ channelId ] = true ; } public channelUsers : { [ channelId ] : boolean ; } = { } ; public touchChannelUsers ( channelId ) { this . channelUsers [ channelId ] = true ; } public channelGames : { [ channelId ] : boolean ; } = { } ; public touchChannelGames ( channelId ) { this . channelGames [ channelId ] = true ; } public channelChat : { [ channelId ] : boolean ; } = { } ; public touchChannelChat ( channelId ) { this . channelChat [ channelId ] = true ; } public users : { [ name ] : boolean ; } = { } ; public touchUser ( name ) { this . users [ name ] = true ; } public gameTrees : { [ channelId ] : boolean ; } = { } ; public touchGameTree ( channelId ) { this . gameTrees [ channelId ] = true ; } public gameClocks : { [ channelId ] : boolean ; } = { } ; public touchGameClocks ( channelId ) { this . gameClocks [ channelId ] = true ; } public gameActions : { [ channelId ] : boolean ; } = { } ; public touchGameActions ( channelId ) { this . gameActions [ channelId ] = true ; } public automatch : boolean = false ; } }