// Type definitions for tinder 1.19.0 // Project: https://github.com/tinderjs/tinderjs // Definitions by: Matej Drolc // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare module 'tinder' { import fs = require('fs'); class TinderClient { constructor(); authorize(fbToken: string, fbId: string, callback: Callback); isAuthorized(): Boolean; getAuthToken(): any; getDefaults(): any; userId(): any; getRecommendations(limit: number, callback: Callback); sendMessage(matchId: string, message: string, callback: Callback); like(userId: string, callback: Callback); superLike(userId: string, callback: Callback); pass(userId: string, callback: Callback); unmatch(matchId: string, callback: Callback); getUpdates(callback: Callback); getHistory(callback: Callback); updatePosition(longitude, latitude, callback: Callback); getAccount(callback: Callback); updatePreferences(discovery: Boolean, minAge: number, maxAge: number, gender: number, distanceInMiles: string, callback: Callback); uploadPicture(file: fs.ReadStream, callback: Callback); uploadFBPicture(pictureId, xdistance_percent: number, ydistance_percent: number, xoffset_percent: number, yoffset_percent: number, callback: Callback) deletePicture(pictureId, callback: Callback) getProfile(callback: Callback) updateGender(gender: number, callback: Callback) updateBio(bio: string, callback: Callback) updateJob(id, callback: Callback) deleteJob(callback: Callback) updateSchool(id, callback: Callback) deleteSchool(callback: Callback) deleteAccount(callback: Callback) getUser(userId: string, callback: Callback) getShareLink(userId: string, callback: Callback) report(userId: string, causeId: Number, causeText: string, callback: Callback) report(userId: string, causeId: Number, callback: Callback) createUsername(username: string, callback: Callback) changeUsername(username: string, callback: Callback) deleteUsername(username: string, callback: Callback) updatePassport(latitude: string, longitude: string, callback: Callback) resetPassport(callback: Callback) } interface Callback { (error: any, data: T): any; } interface TinderUpdates { matches: any[]; blocks: any[]; matchmaker: any[]; lists: any[]; deleted_lists: any[]; liked_messages: TinderMessage[]; squads: any[]; last_activity_date: string; } interface TinderRecommendationsResult { /** * when out of recommendations it is set to "out of recs", a possible value is also "recs timeout", * otherwise does not seem to be used */ message?: string; status: Number; results: TinderRecommendation[]; } interface TinderRecommendation { distance_mi: Number; common_connections: any[]; // todo common_likes: any[]; // todo common_interests: any[]; // todo uncommon_interests: any[]; // todo common_friends: any[]; // todo _id: string; badges: any[]; // todo bio: string; birth_date: string; gender: number; name: string; ping_time: string; photos: TinderPhoto[]; jobs: any[]; // todo schools: any[]; // todo teaser: { string: string; }; // todo birth_date_info: string; } interface TinderHistory { matches: TinderMatch[]; blocks: string[]; lists: any[]; // todo deleted_lists: any[]; // todo liked_messages: TinderLikedMessage[]; squads: any[]; // todo last_activity_date: string; } interface TinderLikedMessage { message_id: string; updated_at: string; liker_id: string; match_id: string; is_liked: Boolean; } interface TinderMatch { _id: string; closed: Boolean; common_friend_count: number; common_like_count: number; created_date: string; dead: Boolean; last_activity_date: string; message_count: number; messages: TinderMessage[]; muted: Boolean; participants: string[]; pending: Boolean; is_super_like: Boolean; following: Boolean; following_moments: Boolean; id: string; person: TinderPerson; } interface TinderPerson { _id: string; bio: string; birth_date: string; gender: number; name: string; ping_time: string; user_number: number; photos: TinderPhoto[]; badges: any[]; // todo } interface TinderPhoto { url: string; processedFiles: TinderPhotoProcessedFile[]; extension: string; fileName: string; xoffset_percent: number; ydistance_percent: number; main: Boolean; xdistance_percent: number; id: string; yoffset_percent: number; } interface TinderPhotoProcessedFile { url: string; height: number; width: number; } interface TinderMessage { _id: string; match_id: string; to: string; from: string; message: string; sent_date: string; created_date: string; timestamp: number; } }