1+ declare module 'testingbot-api' {
2+ export interface TestingBotOptions {
3+ api_key ?: string ;
4+ api_secret ?: string ;
5+ debug ?: boolean ;
6+ retries ?: number ;
7+ retryDelay ?: number ;
8+ }
9+
10+ export interface Browser {
11+ browserName : string ;
12+ version ?: string ;
13+ platform ?: string ;
14+ os ?: string ;
15+ }
16+
17+ export interface Device {
18+ id : string ;
19+ name : string ;
20+ platform : string ;
21+ version : string ;
22+ available : boolean ;
23+ }
24+
25+ export interface SessionOptions {
26+ capabilities : {
27+ browserName : string ;
28+ browserVersion ?: string ;
29+ platform ?: string ;
30+ [ key : string ] : any ;
31+ } ;
32+ }
33+
34+ export interface SessionResponse {
35+ session_id : string ;
36+ cdp_url : string ;
37+ }
38+
39+ export interface Test {
40+ session_id : string ;
41+ status : string ;
42+ browser : string ;
43+ version : string ;
44+ platform : string ;
45+ duration : number ;
46+ created_at : string ;
47+ [ key : string ] : any ;
48+ }
49+
50+ export interface TestUpdate {
51+ 'test[success]' ?: '0' | '1' ;
52+ 'test[status_message]' ?: string ;
53+ 'test[name]' ?: string ;
54+ 'test[extra]' ?: string ;
55+ [ key : string ] : any ;
56+ }
57+
58+ export interface Build {
59+ id : number ;
60+ name : string ;
61+ tests : number ;
62+ created_at : string ;
63+ [ key : string ] : any ;
64+ }
65+
66+ export interface UserInfo {
67+ first_name : string ;
68+ last_name : string ;
69+ email : string ;
70+ [ key : string ] : any ;
71+ }
72+
73+ export interface UserUpdate {
74+ 'user[first_name]' ?: string ;
75+ 'user[last_name]' ?: string ;
76+ 'user[email]' ?: string ;
77+ [ key : string ] : any ;
78+ }
79+
80+ export interface ScreenshotOptions {
81+ url : string ;
82+ browsers : Array < {
83+ browserName : string ;
84+ version ?: string ;
85+ os ?: string ;
86+ } > ;
87+ resolution : string ;
88+ waitTime ?: number ;
89+ fullPage ?: boolean ;
90+ callbackURL ?: string ;
91+ }
92+
93+ export interface Screenshot {
94+ id : string ;
95+ url : string ;
96+ screenshots : Array < {
97+ browser : string ;
98+ version : string ;
99+ os : string ;
100+ image_url : string ;
101+ thumb_url : string ;
102+ } > ;
103+ [ key : string ] : any ;
104+ }
105+
106+ export interface Tunnel {
107+ id : string ;
108+ state : string ;
109+ metadata ?: any ;
110+ [ key : string ] : any ;
111+ }
112+
113+ export interface TeamUser {
114+ id : number ;
115+ first_name : string ;
116+ last_name : string ;
117+ email : string ;
118+ role : string ;
119+ [ key : string ] : any ;
120+ }
121+
122+ export type Callback < T = any > = ( error : Error | null , data ?: T ) => void ;
123+
124+ export class TestingBot {
125+ constructor ( options ?: TestingBotOptions ) ;
126+
127+ // Browser & Device Management
128+ getBrowsers ( ) : Promise < Browser [ ] > ;
129+ getBrowsers ( type : 'web' | 'mobile' ) : Promise < Browser [ ] > ;
130+ getBrowsers ( callback : Callback < Browser [ ] > ) : void ;
131+ getBrowsers ( type : 'web' | 'mobile' , callback : Callback < Browser [ ] > ) : void ;
132+
133+ getDevices ( ) : Promise < Device [ ] > ;
134+ getDevices ( callback : Callback < Device [ ] > ) : void ;
135+
136+ getAvailableDevices ( ) : Promise < Device [ ] > ;
137+ getAvailableDevices ( callback : Callback < Device [ ] > ) : void ;
138+
139+ getDevice ( deviceId : string ) : Promise < Device > ;
140+ getDevice ( deviceId : string , callback : Callback < Device > ) : void ;
141+
142+ // Session Management
143+ createSession ( options : SessionOptions ) : Promise < SessionResponse > ;
144+ createSession ( options : SessionOptions , callback : Callback < SessionResponse > ) : void ;
145+
146+ // User Management
147+ getUserInfo ( ) : Promise < UserInfo > ;
148+ getUserInfo ( callback : Callback < UserInfo > ) : void ;
149+
150+ updateUserInfo ( userData : UserUpdate ) : Promise < UserInfo > ;
151+ updateUserInfo ( userData : UserUpdate , callback : Callback < UserInfo > ) : void ;
152+
153+ // Test Management
154+ getTests ( ) : Promise < Test [ ] > ;
155+ getTests ( offset : number , limit : number ) : Promise < Test [ ] > ;
156+ getTests ( callback : Callback < Test [ ] > ) : void ;
157+ getTests ( offset : number , limit : number , callback : Callback < Test [ ] > ) : void ;
158+
159+ getTestDetails ( sessionId : string ) : Promise < Test > ;
160+ getTestDetails ( sessionId : string , callback : Callback < Test > ) : void ;
161+
162+ updateTest ( testData : TestUpdate , sessionId : string ) : Promise < Test > ;
163+ updateTest ( testData : TestUpdate , sessionId : string , callback : Callback < Test > ) : void ;
164+
165+ deleteTest ( sessionId : string ) : Promise < boolean > ;
166+ deleteTest ( sessionId : string , callback : Callback < boolean > ) : void ;
167+
168+ stopTest ( sessionId : string ) : Promise < boolean > ;
169+ stopTest ( sessionId : string , callback : Callback < boolean > ) : void ;
170+
171+ // Tunnel Management
172+ getTunnelList ( ) : Promise < Tunnel [ ] > ;
173+ getTunnelList ( callback : Callback < Tunnel [ ] > ) : void ;
174+
175+ deleteTunnel ( tunnelId : string ) : Promise < boolean > ;
176+ deleteTunnel ( tunnelId : string , callback : Callback < boolean > ) : void ;
177+
178+ // Build Management
179+ getBuilds ( ) : Promise < Build [ ] > ;
180+ getBuilds ( offset : number , limit : number ) : Promise < Build [ ] > ;
181+ getBuilds ( callback : Callback < Build [ ] > ) : void ;
182+ getBuilds ( offset : number , limit : number , callback : Callback < Build [ ] > ) : void ;
183+
184+ getTestsForBuild ( buildId : string | number ) : Promise < Test [ ] > ;
185+ getTestsForBuild ( buildId : string | number , callback : Callback < Test [ ] > ) : void ;
186+
187+ deleteBuild ( buildId : string | number ) : Promise < boolean > ;
188+ deleteBuild ( buildId : string | number , callback : Callback < boolean > ) : void ;
189+
190+ // Storage Management
191+ uploadFile ( filePath : string ) : Promise < string > ;
192+ uploadFile ( filePath : string , callback : Callback < string > ) : void ;
193+
194+ uploadRemoteFile ( fileUrl : string ) : Promise < string > ;
195+ uploadRemoteFile ( fileUrl : string , callback : Callback < string > ) : void ;
196+
197+ getStorageFile ( appUrl : string ) : Promise < any > ;
198+ getStorageFile ( appUrl : string , callback : Callback < any > ) : void ;
199+
200+ getStorageFiles ( ) : Promise < any [ ] > ;
201+ getStorageFiles ( offset : number , limit : number ) : Promise < any [ ] > ;
202+ getStorageFiles ( callback : Callback < any [ ] > ) : void ;
203+ getStorageFiles ( offset : number , limit : number , callback : Callback < any [ ] > ) : void ;
204+
205+ deleteStorageFile ( appUrl : string ) : Promise < boolean > ;
206+ deleteStorageFile ( appUrl : string , callback : Callback < boolean > ) : void ;
207+
208+ // Screenshots
209+ takeScreenshot (
210+ url : string ,
211+ browsers : ScreenshotOptions [ 'browsers' ] ,
212+ resolution : string ,
213+ waitTime ?: number ,
214+ fullPage ?: boolean ,
215+ callbackURL ?: string
216+ ) : Promise < Screenshot > ;
217+ takeScreenshot (
218+ url : string ,
219+ browsers : ScreenshotOptions [ 'browsers' ] ,
220+ resolution : string ,
221+ waitTime : number ,
222+ fullPage : boolean ,
223+ callbackURL : string ,
224+ callback : Callback < Screenshot >
225+ ) : void ;
226+
227+ retrieveScreenshots ( screenshotId : string ) : Promise < Screenshot > ;
228+ retrieveScreenshots ( screenshotId : string , callback : Callback < Screenshot > ) : void ;
229+
230+ getScreenshotList ( ) : Promise < Screenshot [ ] > ;
231+ getScreenshotList ( offset : number , limit : number ) : Promise < Screenshot [ ] > ;
232+ getScreenshotList ( callback : Callback < Screenshot [ ] > ) : void ;
233+ getScreenshotList ( offset : number , limit : number , callback : Callback < Screenshot [ ] > ) : void ;
234+
235+ // Team Management
236+ getTeam ( ) : Promise < any > ;
237+ getTeam ( callback : Callback < any > ) : void ;
238+
239+ getUsersInTeam ( ) : Promise < TeamUser [ ] > ;
240+ getUsersInTeam ( callback : Callback < TeamUser [ ] > ) : void ;
241+
242+ getUserFromTeam ( userId : string | number ) : Promise < TeamUser > ;
243+ getUserFromTeam ( userId : string | number , callback : Callback < TeamUser > ) : void ;
244+
245+ createUserInTeam ( userData : UserUpdate ) : Promise < TeamUser > ;
246+ createUserInTeam ( userData : UserUpdate , callback : Callback < TeamUser > ) : void ;
247+
248+ updateUserInTeam ( userId : string | number , userData : UserUpdate ) : Promise < TeamUser > ;
249+ updateUserInTeam ( userId : string | number , userData : UserUpdate , callback : Callback < TeamUser > ) : void ;
250+
251+ resetCredentials ( userId : string | number ) : Promise < any > ;
252+ resetCredentials ( userId : string | number , callback : Callback < any > ) : void ;
253+
254+ // Utility
255+ getAuthenticationHashForSharing ( sessionId : string ) : string ;
256+ }
257+
258+ export default TestingBot ;
259+ }
0 commit comments