Guest User

Untitled

a guest
Jul 4th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.70 KB | None | 0 0
  1. declare module "node-ncc-es6" {
  2. import { CookieJar } from "tough-cookie";
  3. import { EventEmitter } from "events";
  4. import { Stream } from "stream";
  5.  
  6. export class Room {
  7. cafe:Cafe;
  8. id:string;
  9. is1to1:boolean;
  10. isPublic:boolean;
  11. joined:boolean;
  12. lastMessage:Message;
  13. lastMsgSn:number;
  14. load:number;
  15. loading:boolean;
  16. master:User;
  17. maxUserCount:number;
  18. name:string;
  19. session:Session;
  20. sync:boolean;
  21. updated:Date;
  22. userCount:number;
  23. users:object
  24. }
  25. export class User {
  26. id:string;
  27. nickname:string;
  28. image:string;
  29. cafe:Cafe
  30. }
  31. export class Cafe {
  32. canClose:boolean;
  33. id:number;
  34. image:string;
  35. load:number;
  36. loading:boolean;
  37. name:string;
  38. rooms:{[roomid:string]:Room};
  39. session:Session;
  40. users:{[userid:string]:User};
  41. }
  42. export default class Session extends EventEmitter {
  43. cafes:{[cafeid:number]:Cafe};
  44. connected:boolean;
  45. credentials:Credentials;
  46. request:Function;
  47. rooms:{[roomid:string]:Room};
  48. roomsLoaded:boolean;
  49. server:string;
  50. sid:string;
  51. username:string;
  52. constructor (credentials:Credentials);
  53. handlePoll(data:any[]);
  54. sendText(room:Room,text:string):Promise<void>;
  55. sendSticker(room:Room,stickerId:string):Promise<void>;
  56. sendImage(room:Room,image:Stream | object, options:any):Promise<void>;
  57. on(eventType:"message",callback:(message:Message) => void):this;
  58. on(eventType:"error",callback:(error:any) => void):this;
  59. connect(retries?:number, err?:any):Promise<void>;
  60. sendCommand(command:string,body:object):Promise<any>;
  61. /**
  62. * However, creating non-1to1 room isn't supported now. Be careful.
  63. * @param cafe Cafe id
  64. * @param userList List of user
  65. * @param options No
  66. * @param captcha Matter
  67. */
  68. createRoom(cafe:Cafe | {id:number},userList:Array<User | {id:string}>,options?:{name:string,isPublic:boolean},captcha?:{key:string,value:string}):Promise<Room>;
  69. inviteRoom(room:{cafe:Cafe | {id:number},id:string}):Promise<void>;
  70. /**
  71. * This deletes room from the USER. which means, this doesn't terminate the room.
  72. * @param room room~
  73. */
  74. deleteRoom(room:Room):Promise<Room>;
  75. /**
  76. * This closes the room forcefully. Only staffs are able to do it.
  77. * @param room Room~
  78. */
  79. closeOpenroom(room:Room):Promise<Room>;
  80. /**
  81. * Fetches data from the server and elevates loading level to 0
  82. * This also joins to the room if the user hasn't joined yet. Quite
  83. * weird, right?
  84. * @param room Room~
  85. */
  86. syncRoom(room:Room):Promise<Room>;
  87. joinRoom(cafeId:number, roomId:string):Promise<Room>;
  88. /**
  89. * Fetches connected chat room list
  90. */
  91. getRoomList():Promise<Room[]>;
  92. /**
  93. * Changes room name
  94. * @param room Room~
  95. * @param name room name
  96. */
  97. changeRoomName(room:Room,name:string):Promise<void>;
  98. /**
  99. * Hands room master; Can accept user ID or user object.
  100. * @param room room~
  101. * @param id user id or user object
  102. */
  103. delegateMaster(room:Room,id:string | User):Promise<void>;
  104. /**
  105. * 'Bans' the user. Can accept user ID or user object.
  106. * @param room Room~
  107. * @param user user id or user object
  108. */
  109. rejectMember(room:Room,user:string | User):Promise<void>;
  110. /**
  111. * Returns a list of cafe open rooms
  112. * @param cafe Cafe Object
  113. * @param order time or name
  114. * @param page page?
  115. */
  116. findOpenRoomList(cafe:Cafe | {id:number}, order?:["time","name"], page?:number):Promise<Room[]>;
  117. /**
  118. * Returns a list of joined cafes
  119. */
  120. findMyCafeList():Promise<Cafe[]>;
  121. /**
  122. * Syncs lost message from the server
  123. * @param room room!
  124. */
  125. syncMsg(room:Room):Promise<void>;
  126. /**
  127. * Sends a message to the server
  128. * @param message object... what?
  129. */
  130. sendMsg(message:object):Promise<void>;
  131. /**
  132. * Get old messages and returns them.
  133. * @param room room id
  134. * @param start start of message id
  135. * @param end end of message id
  136. */
  137. getMsg(room:Room | {cafe:Cafe | {id:number},id:string}, start:number, end:number):Promise<Message[]>;
  138. /**
  139. * Send an acknowledge to the server. However, this is only necessary if
  140. * you're making an actual chat client, it's not required for bots.
  141. * However, node-ncc-es6 doesn't handle lastAckSn yet, so this isn't likely
  142. * to be used anyway. TODO feel free to send a pull request.
  143. * @param message message
  144. */
  145. ackMsg(message:Message):Promise<void>;
  146. }
  147. export class Message {
  148. id:number;
  149. message:string;
  150. room:Room;
  151. sent:boolean;
  152. target:Array<User>;
  153. time:Date;
  154. type:["text","invite","leave","changeName","changeMaster","join","reject","create","sticker","image","tvcast"];
  155. user:User;
  156. }
  157. export class Credentials extends EventEmitter {
  158. cookieJar:CookieJar;
  159. password:string;
  160. username:string;
  161. constructor (username:string, password:string);
  162. setCookieJar(cookieJar:CookieJar);
  163. getCookieJar():CookieJar;
  164. validateLogin():Promise<string>;
  165. login(captcha?:{key:string,value:string}):Promise<void>;
  166. logout():Promise<void>;
  167. }
  168. }
Add Comment
Please, Sign In to add comment