/// import request = require("request"); import { EventEmitter } from "events"; export = Twitter; declare class Twitter { readonly VERSION: string; readonly allow_promise: boolean; readonly request: typeof request; constructor(options: Twitter.AccessTokenOptions | Twitter.BearerTokenOptions); get(path: string, params: Twitter.RequestParams, callback: Twitter.Callback): void; get(path: string, callback: Twitter.Callback): void; get(path: string, params?: Twitter.RequestParams): Promise; post(path: string, params: Twitter.RequestParams, callback: Twitter.Callback): void; post(path: string, callback: Twitter.Callback): void; post(path: string, params?: Twitter.RequestParams): Promise; stream( method: "user" | "site" | string, params: { [key: string]: any }, callback: (stream: EventEmitter) => void, ): void; stream(method: "user" | "site" | string, callback: (stream: EventEmitter) => void): void; stream(method: "user" | "site" | string, params?: { [key: string]: any }): EventEmitter; } declare namespace Twitter { interface Options { consumer_key: string; consumer_secret: string; rest_base?: string | undefined; stream_base?: string | undefined; user_stream_base?: string | undefined; site_stream_base?: string | undefined; media_base?: string | undefined; request_options?: request.CoreOptions | undefined; } interface AccessTokenOptions extends Options { access_token_key: string; access_token_secret: string; } interface BearerTokenOptions extends Options { bearer_token: string; } type Callback = (error: any, data: ResponseData, response: request.Response) => void; interface RequestParams { [key: string]: any; base?: string | undefined; } interface ResponseData { [key: string]: any; } }