import { Provider, OAuth2Token } from '../types.cjs'; interface XOptions { userFields?: UserField[]; } declare function createXProvider(options?: XOptions): Provider; declare const x: Provider; type UserField = 'affiliation' | 'connection_status' | 'created_at' | 'description' | 'entities' | 'id' | 'is_identity_verified' | 'location' | 'most_recent_tweet_id' | 'name' | 'parody' | 'pinned_tweet_id' | 'profile_banner_url' | 'profile_image_url' | 'protected' | 'public_metrics' | 'receives_your_dm' | 'subscription' | 'subscription_type' | 'url' | 'username' | 'verified' | 'verified_followers_count' | 'verified_type' | 'withheld'; interface XUser { id: string; name: string; email?: string; username: string; location?: string; entities?: { url: { urls: UrlEntity[]; }; description: { hashtags: HashtagEntity[]; cashtags: HashtagEntity[]; mentions: MentionEntity[]; }; }; verified?: boolean; description?: string; url?: string; profile_image_url?: string; protected?: boolean; pinned_tweet_id?: string; created_at?: string; } interface XUserInfo { data: XUser; includes?: { tweets?: { id: string; text: string; }[]; users?: XUser[]; }; } type UrlEntity = { start: number; end: number; url: string; display_url: string; expanded_url: string; }; type HashtagEntity = { start: number; end: number; tag: string; }; type MentionEntity = { start: number; end: string; username: string; }; interface XToken extends OAuth2Token { token_type: string; expires_in: number; access_token: string; scope: string; refresh_token: string; } export { type XOptions, type XToken, type XUser, type XUserInfo, createXProvider, x };