UNPKG

@twitter-api-v2/plugin-rate-limit

Version:
52 lines (51 loc) 2.67 kB
import type { ITwitterApiClientPlugin, ITwitterApiAfterRequestHookArgs, TwitterRateLimit, ITwitterApiResponseErrorHookArgs } from 'twitter-api-v2'; import type { ITwitterApiRateLimitStore } from './types'; declare const prefixes: { readonly v2: "https://api.twitter.com/2/"; readonly v2Labs: "https://api.twitter.com/labs/2/"; readonly v1: "https://api.twitter.com/1.1/"; readonly v1Upload: "https://upload.twitter.com/1.1/"; readonly v1Stream: "https://stream.twitter.com/1.1/"; }; declare type TAvailablePrefix = keyof typeof prefixes; export declare class TwitterApiRateLimitPlugin implements ITwitterApiClientPlugin { protected _v1Plugin?: TwitterApiRateLimitPluginWithPrefixV1; protected _v2Plugin?: TwitterApiRateLimitPluginWithPrefixV2; protected store: ITwitterApiRateLimitStore; constructor(store?: ITwitterApiRateLimitStore); onAfterRequest(args: ITwitterApiAfterRequestHookArgs): Promise<void>; onResponseError(args: ITwitterApiResponseErrorHookArgs): Promise<void>; /** * Get the last obtained Twitter rate limit information for {endpoint}. */ getRateLimit(endpoint: string, method?: string): void | TwitterRateLimit | Promise<void | TwitterRateLimit>; /** * * Tells if you hit the Twitter rate limit for {rateLimit}. * Obtain {rateLimit} through {.getRateLimit}. */ hasHitRateLimit(rateLimit: TwitterRateLimit | void): boolean; /** * Tells if you hit the returned Twitter rate limit for the following {rateLimit} has expired. * Obtain {rateLimit} through {.getRateLimit}. */ isRateLimitStatusObsolete(rateLimit: TwitterRateLimit | void): boolean; get v1(): TwitterApiRateLimitPluginWithPrefixV1; get v2(): TwitterApiRateLimitPluginWithPrefixV2; } export declare class TwitterApiRateLimitPluginWithPrefix { plugin: TwitterApiRateLimitPlugin; protected prefix: TAvailablePrefix; constructor(plugin: TwitterApiRateLimitPlugin, prefix: TAvailablePrefix); getRateLimit(endpoint: string, method?: string): void | TwitterRateLimit | Promise<void | TwitterRateLimit>; hasHitRateLimit(rateLimit: TwitterRateLimit | void): boolean; isRateLimitStatusObsolete(rateLimit: TwitterRateLimit | void): boolean; } export declare class TwitterApiRateLimitPluginWithPrefixV1 extends TwitterApiRateLimitPluginWithPrefix { get upload(): TwitterApiRateLimitPluginWithPrefix; get stream(): TwitterApiRateLimitPluginWithPrefix; } export declare class TwitterApiRateLimitPluginWithPrefixV2 extends TwitterApiRateLimitPluginWithPrefix { get labs(): TwitterApiRateLimitPluginWithPrefix; } export default TwitterApiRateLimitPlugin;