import { Connection, Callback } from '../connection'; import { Query } from '../query'; import { Stream } from 'stream'; interface BatchRequestParams extends RequestParams { method: string; url: string; richInput?: string | undefined; } interface BatchRequestResult { statusCode: string; result: RequestResult; } interface BatchRequestResults { hasError: boolean; results: BatchRequestResult[]; } interface RequestParams { method: string; url: string; body?: string | undefined; } export class RequestResult {} export class Request implements PromiseLike { constructor(chatter: Chatter, params: RequestParams); batchParams(): BatchRequestParams; promise(): Promise; stream(): Stream; then( onfulfilled?: ((value: T) => PromiseLike | TResult1) | null, onrejected?: ((reason: any) => PromiseLike | TResult2) | null, ): Promise; finally(onfinally?: () => void): Promise; thenCall(callback?: (err: Error, records: T) => void): Query; } export class Resource extends Request { constructor(chatter: Chatter, url: string, queryParams?: object); create(data: object | string, callback?: Callback): Request; del(callback?: Callback): Request; delete(callback?: Callback): Request; retrieve(callback?: Callback): Request; update(data: object, callback?: Callback): Request; } export class Chatter { constructor(conn: Connection); batch(callback?: Callback): Promise; request(params: RequestParams, callback?: Callback>): Request; resource(url: string, queryParams?: object): Resource; }