/// import Connection from '../connection'; import { HttpRequest, Schema } from '../types'; /** * */ export type ChatterRequestParams = Omit & { body?: string | object | null; }; export type BatchRequestParams = { method: string; url: string; richInput?: any; }; type BatchRequestTupple = { [K in keyof RT]: Request; }; type BatchResultTupple = { [K in keyof RT]: { statusCode: number; result: RT[K]; }; }; export type BatchResponse = { hasErrors: boolean; results: BatchResultTupple; }; /** * A class representing chatter API request */ declare class Request { _chatter: Chatter; _request: ChatterRequestParams; _promise: Promise | undefined; constructor(chatter: Chatter, request: ChatterRequestParams); /** * Retrieve parameters in batch request form */ batchParams(): { richInput?: string | object | null | undefined; method: import("../types").HttpMethods; url: string; }; /** * Retrieve parameters in batch request form * * @method Chatter~Request#promise * @returns {Promise.} */ promise(): Promise; /** * Returns Node.js Stream object for request * * @method Chatter~Request#stream * @returns {stream.Stream} */ stream(): import("stream").Duplex; /** * Promise/A+ interface * http://promises-aplus.github.io/promises-spec/ * * Delegate to deferred promise, return promise instance for batch result */ then(onResolve?: (value: R) => U | PromiseLike, onReject?: (e: any) => U | PromiseLike): Promise; } export declare class Resource extends Request { _url: string; /** * */ constructor(chatter: Chatter, url: string, queryParams?: { [name: string]: string | number | boolean | null; } | null); /** * Create a new resource */ create(data: string | object | null): Request; /** * Retrieve resource content */ retrieve(): Request; /** * Update specified resource */ update(data: object): Request; /** * Delete specified resource */ destroy(): Request; /** * Synonym of Resource#destroy() */ delete: () => Request; /** * Synonym of Resource#destroy() */ del: () => Request; } /** * API class for Chatter REST API call */ export declare class Chatter { _conn: Connection; /** * */ constructor(conn: Connection); /** * Sending request to API endpoint * @private */ _request(req_: ChatterRequestParams): import("../types").StreamPromise; /** * Convert path to site root relative url * @private */ _normalizeUrl(url: string): string; /** * Make a request for chatter API resource */ request(req: ChatterRequestParams): Request; /** * Make a resource request to chatter API */ resource(url: string, queryParams?: { [name: string]: string | number | boolean | null; } | null): Resource; /** * Make a batch request to chatter API */ batch(requests: BatchRequestTupple): Promise>; } export default Chatter;