import FirefishAPI from './firefish/api_client.js' import OAuth from './oauth.js' import Response from './response.js' import { MegalodonInterface, WebSocketInterface } from './megalodon.js' import Entity from './entity.js' export default class Firefish implements MegalodonInterface { client: FirefishAPI.Interface baseUrl: string constructor(baseUrl: string, accessToken?: string | null, userAgent?: string | null) cancel(): void registerApp( client_name: string, options?: Partial<{ scopes: Array redirect_uris: string website: string }> ): Promise createApp( client_name: string, options?: Partial<{ scopes: Array redirect_uris: string website: string }> ): Promise generateAuthUrlAndToken(clientSecret: string): Promise verifyAppCredentials(): Promise> fetchAccessToken(_client_id: string | null, client_secret: string, session_token: string, _redirect_uri?: string): Promise refreshToken(_client_id: string, _client_secret: string, _refresh_token: string): Promise revokeToken(_client_id: string, _client_secret: string, _token: string): Promise>> registerAccount(_username: string, _email: string, _password: string, _agreement: boolean, _locale: string, _reason?: string | null): Promise> verifyAccountCredentials(): Promise> updateCredentials(options?: { discoverable?: boolean bot?: boolean display_name?: string note?: string avatar?: string header?: string locked?: boolean source?: { privacy?: string sensitive?: boolean language?: string } | null fields_attributes?: Array<{ name: string value: string }> }): Promise> getAccount(id: string): Promise> getAccountStatuses( id: string, options?: { limit?: number max_id?: string since_id?: string pinned?: boolean exclude_replies: boolean exclude_reblogs: boolean only_media?: boolean } ): Promise>> getAccountFavourites( _id: string, _options?: { limit?: number max_id?: string since_id?: string } ): Promise>> subscribeAccount(_id: string): Promise> unsubscribeAccount(_id: string): Promise> getAccountFollowers( id: string, options?: { limit?: number max_id?: string since_id?: string } ): Promise>> getAccountFollowing( id: string, options?: { limit?: number max_id?: string since_id?: string } ): Promise>> getAccountLists(_id: string): Promise>> getIdentityProof(_id: string): Promise>> followAccount( id: string, _options?: { reblog?: boolean } ): Promise> unfollowAccount(id: string): Promise> blockAccount(id: string): Promise> unblockAccount(id: string): Promise> muteAccount(id: string, _notifications: boolean): Promise> unmuteAccount(id: string): Promise> pinAccount(_id: string): Promise> unpinAccount(_id: string): Promise> setAccountNote(_id: string): Promise> getRelationship(id: string): Promise> getRelationships(ids: Array): Promise>> searchAccount( q: string, options?: { following?: boolean resolve?: boolean limit?: number max_id?: string since_id?: string } ): Promise>> lookupAccount(_acct: string): Promise> getBookmarks(_options?: { limit?: number; max_id?: string; since_id?: string; min_id?: string }): Promise>> getFavourites(options?: { limit?: number; max_id?: string; min_id?: string }): Promise>> getMutes(options?: { limit?: number; max_id?: string; min_id?: string }): Promise>> getBlocks(options?: { limit?: number; max_id?: string; min_id?: string }): Promise>> getDomainBlocks(_options?: { limit?: number; max_id?: string; min_id?: string }): Promise>> blockDomain(_domain: string): Promise>> unblockDomain(_domain: string): Promise>> getFilters(): Promise>> getFilter(_id: string): Promise> createFilter( _phrase: string, _context: Array, _options?: { irreversible?: boolean whole_word?: boolean expires_in?: string } ): Promise> updateFilter( _id: string, _phrase: string, _context: Array, _options?: { irreversible?: boolean whole_word?: boolean expires_in?: string } ): Promise> deleteFilter(_id: string): Promise> report( account_id: string, options: { status_ids?: Array comment: string forward?: boolean category: Entity.Category rule_ids?: Array } ): Promise> getFollowRequests(_limit?: number): Promise>> acceptFollowRequest(id: string): Promise> rejectFollowRequest(id: string): Promise> getEndorsements(_options?: { limit?: number; max_id?: string; since_id?: string }): Promise>> getFeaturedTags(): Promise>> createFeaturedTag(_name: string): Promise> deleteFeaturedTag(_id: string): Promise>> getSuggestedTags(): Promise>> getPreferences(): Promise> private getDefaultPostPrivacy getFollowedTags(): Promise>> getSuggestions(limit?: number): Promise>> getTag(_id: string): Promise> followTag(_id: string): Promise> unfollowTag(_id: string): Promise> postStatus( status: string, options?: { media_ids?: Array poll?: { options: Array expires_in: number multiple?: boolean hide_totals?: boolean } in_reply_to_id?: string sensitive?: boolean spoiler_text?: string visibility?: Entity.StatusVisibility scheduled_at?: string language?: string quote_id?: string } ): Promise> getStatus(id: string): Promise> editStatus( _id: string, _options: { status?: string spoiler_text?: string sensitive?: boolean media_ids?: Array poll?: { options?: Array expires_in?: number multiple?: boolean hide_totals?: boolean } } ): Promise> deleteStatus(id: string): Promise>> getStatusContext( id: string, options?: { limit?: number max_id?: string since_id?: string } ): Promise> getStatusSource(_id: string): Promise> getStatusRebloggedBy(id: string): Promise>> getStatusFavouritedBy(_id: string): Promise>> favouriteStatus(id: string): Promise> unfavouriteStatus(id: string): Promise> reblogStatus(id: string): Promise> unreblogStatus(id: string): Promise> bookmarkStatus(_id: string): Promise> unbookmarkStatus(_id: string): Promise> muteStatus(_id: string): Promise> unmuteStatus(_id: string): Promise> pinStatus(id: string): Promise> unpinStatus(id: string): Promise> private reactionName uploadMedia( file: any, _options?: { description?: string focus?: string } ): Promise> getMedia(id: string): Promise> updateMedia( id: string, options?: { file?: any description?: string focus?: string is_sensitive?: boolean } ): Promise> getPoll(_id: string): Promise> votePoll(_id: string, choices: Array, status_id?: string | null): Promise> getScheduledStatuses(_options?: { limit?: number; max_id?: string; since_id?: string; min_id?: string }): Promise>> getScheduledStatus(_id: string): Promise> scheduleStatus(_id: string, _scheduled_at?: string | null): Promise> cancelScheduledStatus(_id: string): Promise>> getPublicTimeline(options?: { only_media?: boolean; limit?: number; max_id?: string; since_id?: string; min_id?: string }): Promise>> getLocalTimeline(options?: { only_media?: boolean; limit?: number; max_id?: string; since_id?: string; min_id?: string }): Promise>> getTagTimeline( hashtag: string, options?: { local?: boolean only_media?: boolean limit?: number max_id?: string since_id?: string min_id?: string } ): Promise>> getHomeTimeline(options?: { local?: boolean; limit?: number; max_id?: string; since_id?: string; min_id?: string }): Promise>> getListTimeline( list_id: string, options?: { limit?: number max_id?: string since_id?: string min_id?: string } ): Promise>> getConversationTimeline(options?: { limit?: number; max_id?: string; since_id?: string; min_id?: string }): Promise>> deleteConversation(_id: string): Promise>> readConversation(_id: string): Promise> getLists(): Promise>> getList(id: string): Promise> createList(title: string): Promise> updateList(id: string, title: string): Promise> deleteList(id: string): Promise>> getAccountsInList( id: string, _options?: { limit?: number max_id?: string since_id?: string } ): Promise>> addAccountsToList(id: string, account_ids: Array): Promise>> deleteAccountsFromList(id: string, account_ids: Array): Promise>> getMarkers(_timeline: Array): Promise>> saveMarkers(_options?: { home?: { last_read_id: string } notifications?: { last_read_id: string } }): Promise> getNotifications(options?: { limit?: number max_id?: string since_id?: string min_id?: string exclude_type?: Array account_id?: string }): Promise>> getNotification(_id: string): Promise> dismissNotifications(): Promise>> dismissNotification(_id: string): Promise>> readNotifications(_options: { id?: string; max_id?: string }): Promise> subscribePushNotification( _subscription: { endpoint: string keys: { p256dh: string auth: string } }, _data?: { alerts: { follow?: boolean favourite?: boolean reblog?: boolean mention?: boolean poll?: boolean } } | null ): Promise> getPushSubscription(): Promise> updatePushSubscription( _data?: { alerts: { follow?: boolean favourite?: boolean reblog?: boolean mention?: boolean poll?: boolean } } | null ): Promise> deletePushSubscription(): Promise>> private searchAccounts private searchStatuses private searchHashtags private searchAll search( q: string, options?: { type: 'accounts' | 'hashtags' | 'statuses' limit?: number max_id?: string min_id?: string resolve?: boolean offset?: number following?: boolean account_id?: string exclude_unreviewed?: boolean } ): Promise> getInstance(): Promise> getInstancePeers(): Promise>> getInstanceActivity(): Promise>> getInstanceTrends(_limit?: number | null): Promise>> getInstanceDirectory(_options?: { limit?: number; offset?: number; order?: 'active' | 'new'; local?: boolean }): Promise>> getInstanceCustomEmojis(): Promise>> getInstanceAnnouncements(): Promise>> dismissInstanceAnnouncement(_id: string): Promise>> addReactionToAnnouncement(_id: string, _name: string): Promise>> removeReactionFromAnnouncement(_id: string, _name: string): Promise>> createEmojiReaction(id: string, emoji: string): Promise> deleteEmojiReaction(id: string, emoji: string): Promise> getEmojiReactions(id: string): Promise>> getEmojiReaction(_id: string, _emoji: string): Promise> streamingURL(): Promise userStreaming(): Promise publicStreaming(): Promise localStreaming(): Promise tagStreaming(_tag: string): Promise listStreaming(list_id: string): Promise directStreaming(): Promise userStreamingSubscription(): Promise publicStreamingSubscription(_socket: any): Promise localStreamingSubscription(_socket: any): Promise tagStreamingSubscription(_socket: any, tag: string): Promise listStreamingSubscription(_socket: any, list_id: string): Promise directStreamingSubscription(_socket: any): Promise }