import PleromaAPI from './pleroma/api_client' import WebSocket from './pleroma/web_socket' import { MegalodonInterface } from './megalodon' import Response from './response' import Entity from './entity' import OAuth from './oauth' export default class Pleroma implements MegalodonInterface { client: PleromaAPI.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 generateAuthUrl( clientId: string, clientSecret: string, options: Partial<{ scope: Array redirect_uri: string | null }> ): Promise verifyAppCredentials(): Promise> fetchAccessToken(client_id: string | null, client_secret: string, code: 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 } 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> 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> 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?: 'public' | 'unlisted' | 'private' | 'direct' 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> uploadMedia( file: any, options?: { description?: string focus?: string } ): Promise> getMedia(id: string): Promise> updateMedia( id: string, options?: { file?: any description?: string focus?: string } ): Promise> getPoll(id: string): Promise> votePoll(id: string, choices: Array): Promise> getScheduledStatuses(options?: { limit?: number | null; max_id?: string | null; since_id?: string | null; min_id?: string | null }): 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_types?: 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> 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 }