iceshrimp-legacy/packages/megalodon/lib/src/mastodon.d.ts

375 lines
15 KiB
TypeScript

import MastodonAPI from './mastodon/api_client';
import WebSocket from './mastodon/web_socket';
import { MegalodonInterface } from './megalodon';
import Response from './response';
import Entity from './entity';
import { ProxyConfig } from './proxy_config';
import OAuth from './oauth';
export default class Mastodon implements MegalodonInterface {
client: MastodonAPI.Interface;
baseUrl: string;
constructor(baseUrl: string, accessToken?: string | null, userAgent?: string | null, proxyConfig?: ProxyConfig | false);
cancel(): void;
registerApp(client_name: string, options: Partial<{
scopes: Array<string>;
redirect_uris: string;
website: string;
}>): Promise<OAuth.AppData>;
createApp(client_name: string, options: Partial<{
scopes: Array<string>;
redirect_uris: string;
website: string;
}>): Promise<OAuth.AppData>;
generateAuthUrl(clientId: string, clientSecret: string, options: Partial<{
scope: Array<string>;
redirect_uri: string;
}>): Promise<string>;
verifyAppCredentials(): Promise<Response<Entity.Application>>;
fetchAccessToken(client_id: string | null, client_secret: string, code: string, redirect_uri?: string): Promise<OAuth.TokenData>;
refreshToken(client_id: string, client_secret: string, refresh_token: string): Promise<OAuth.TokenData>;
revokeToken(client_id: string, client_secret: string, token: string): Promise<Response<{}>>;
registerAccount(username: string, email: string, password: string, agreement: boolean, locale: string, reason?: string | null): Promise<Response<Entity.Token>>;
verifyAccountCredentials(): Promise<Response<Entity.Account>>;
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<Response<Entity.Account>>;
getAccount(id: string): Promise<Response<Entity.Account>>;
getAccountStatuses(id: string, options?: {
limit?: number;
max_id?: string;
since_id?: string;
min_id?: string;
pinned?: boolean;
exclude_replies?: boolean;
exclude_reblogs?: boolean;
only_media: boolean;
}): Promise<Response<Array<Entity.Status>>>;
subscribeAccount(id: string): Promise<Response<Entity.Relationship>>;
unsubscribeAccount(id: string): Promise<Response<Entity.Relationship>>;
getAccountFavourites(_id: string, _options?: {
limit?: number;
max_id?: string;
since_id?: string;
}): Promise<Response<Array<Entity.Status>>>;
getAccountFollowers(id: string, options?: {
limit?: number;
max_id?: string;
since_id?: string;
get_all?: boolean;
sleep_ms?: number;
}): Promise<Response<Array<Entity.Account>>>;
getAccountFollowing(id: string, options?: {
limit?: number;
max_id?: string;
since_id?: string;
get_all?: boolean;
sleep_ms?: number;
}): Promise<Response<Array<Entity.Account>>>;
private urlToAccounts;
getAccountLists(id: string): Promise<Response<Array<Entity.List>>>;
getIdentityProof(id: string): Promise<Response<Array<Entity.IdentityProof>>>;
followAccount(id: string, options?: {
reblog?: boolean;
}): Promise<Response<Entity.Relationship>>;
unfollowAccount(id: string): Promise<Response<Entity.Relationship>>;
blockAccount(id: string): Promise<Response<Entity.Relationship>>;
unblockAccount(id: string): Promise<Response<Entity.Relationship>>;
muteAccount(id: string, notifications?: boolean): Promise<Response<Entity.Relationship>>;
unmuteAccount(id: string): Promise<Response<Entity.Relationship>>;
pinAccount(id: string): Promise<Response<Entity.Relationship>>;
unpinAccount(id: string): Promise<Response<Entity.Relationship>>;
getRelationship(id: string): Promise<Response<Entity.Relationship>>;
getRelationships(ids: Array<string>): Promise<Response<Array<Entity.Relationship>>>;
searchAccount(q: string, options?: {
following?: boolean;
resolve?: boolean;
limit?: number;
max_id?: string;
since_id?: string;
}): Promise<Response<Array<Entity.Account>>>;
getBookmarks(options?: {
limit?: number;
max_id?: string;
since_id?: string;
min_id?: string;
}): Promise<Response<Array<Entity.Status>>>;
getFavourites(options?: {
limit?: number;
max_id?: string;
min_id?: string;
}): Promise<Response<Array<Entity.Status>>>;
getMutes(options?: {
limit?: number;
max_id?: string;
min_id?: string;
}): Promise<Response<Array<Entity.Account>>>;
getBlocks(options?: {
limit?: number;
max_id?: string;
min_id?: string;
}): Promise<Response<Array<Entity.Account>>>;
getDomainBlocks(options?: {
limit?: number;
max_id?: string;
min_id?: string;
}): Promise<Response<Array<string>>>;
blockDomain(domain: string): Promise<Response<{}>>;
unblockDomain(domain: string): Promise<Response<{}>>;
getFilters(): Promise<Response<Array<Entity.Filter>>>;
getFilter(id: string): Promise<Response<Entity.Filter>>;
createFilter(phrase: string, context: Array<Entity.FilterContext>, options?: {
irreversible?: boolean;
whole_word?: boolean;
expires_in?: string;
}): Promise<Response<Entity.Filter>>;
updateFilter(id: string, phrase: string, context: Array<Entity.FilterContext>, options?: {
irreversible?: boolean;
whole_word?: boolean;
expires_in?: string;
}): Promise<Response<Entity.Filter>>;
deleteFilter(id: string): Promise<Response<Entity.Filter>>;
report(account_id: string, comment: string, options?: {
status_ids?: Array<string>;
forward?: boolean;
}): Promise<Response<Entity.Report>>;
getFollowRequests(limit?: number): Promise<Response<Array<Entity.Account>>>;
acceptFollowRequest(id: string): Promise<Response<Entity.Relationship>>;
rejectFollowRequest(id: string): Promise<Response<Entity.Relationship>>;
getEndorsements(options?: {
limit?: number;
max_id?: string;
since_id?: string;
}): Promise<Response<Array<Entity.Account>>>;
getFeaturedTags(): Promise<Response<Array<Entity.FeaturedTag>>>;
getAccountFeaturedTags(id: string): Promise<Response<Array<Entity.FeaturedTag>>>;
createFeaturedTag(name: string): Promise<Response<Entity.FeaturedTag>>;
deleteFeaturedTag(id: string): Promise<Response<{}>>;
getSuggestedTags(): Promise<Response<Array<Entity.Tag>>>;
getPreferences(): Promise<Response<Entity.Preferences>>;
getSuggestions(limit?: number): Promise<Response<Array<Entity.Account>>>;
getTag(id: string): Promise<Response<Entity.Tag>>;
followTag(id: string): Promise<Response<Entity.Tag>>;
unfollowTag(id: string): Promise<Response<Entity.Tag>>;
postStatus(status: string, options: {
media_ids?: Array<string>;
poll?: {
options: Array<string>;
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<Response<Entity.Status>>;
getStatus(id: string): Promise<Response<Entity.Status>>;
editStatus(id: string, options: {
status?: string;
spoiler_text?: string;
sensitive?: boolean;
media_ids?: Array<string>;
poll?: {
options?: Array<string>;
expires_in?: number;
multiple?: boolean;
hide_totals?: boolean;
};
}): Promise<Response<Entity.Status>>;
deleteStatus(id: string): Promise<Response<Entity.Status>>;
getStatusContext(id: string, options?: {
limit?: number;
max_id?: string;
since_id?: string;
}): Promise<Response<Entity.Context>>;
getStatusRebloggedBy(id: string): Promise<Response<Array<Entity.Account>>>;
getStatusFavouritedBy(id: string): Promise<Response<Array<Entity.Account>>>;
favouriteStatus(id: string): Promise<Response<Entity.Status>>;
unfavouriteStatus(id: string): Promise<Response<Entity.Status>>;
reblogStatus(id: string): Promise<Response<Entity.Status>>;
unreblogStatus(id: string): Promise<Response<Entity.Status>>;
bookmarkStatus(id: string): Promise<Response<Entity.Status>>;
unbookmarkStatus(id: string): Promise<Response<Entity.Status>>;
muteStatus(id: string): Promise<Response<Entity.Status>>;
unmuteStatus(id: string): Promise<Response<Entity.Status>>;
pinStatus(id: string): Promise<Response<Entity.Status>>;
unpinStatus(id: string): Promise<Response<Entity.Status>>;
uploadMedia(file: any, options?: {
description?: string;
focus?: string;
}): Promise<Response<Entity.Attachment | Entity.AsyncAttachment>>;
getMedia(id: string): Promise<Response<Entity.Attachment>>;
updateMedia(id: string, options?: {
file?: any;
description?: string;
focus?: string;
}): Promise<Response<Entity.Attachment>>;
getPoll(id: string): Promise<Response<Entity.Poll>>;
votePoll(id: string, choices: Array<number>): Promise<Response<Entity.Poll>>;
getScheduledStatuses(options?: {
limit?: number | null;
max_id?: string | null;
since_id?: string | null;
min_id?: string | null;
}): Promise<Response<Array<Entity.ScheduledStatus>>>;
getScheduledStatus(id: string): Promise<Response<Entity.ScheduledStatus>>;
scheduleStatus(id: string, scheduled_at?: string | null): Promise<Response<Entity.ScheduledStatus>>;
cancelScheduledStatus(id: string): Promise<Response<{}>>;
getPublicTimeline(options?: {
only_media?: boolean;
limit?: number;
max_id?: string;
since_id?: string;
min_id?: string;
}): Promise<Response<Array<Entity.Status>>>;
getLocalTimeline(options?: {
only_media?: boolean;
limit?: number;
max_id?: string;
since_id?: string;
min_id?: string;
}): Promise<Response<Array<Entity.Status>>>;
getTagTimeline(hashtag: string, options?: {
local?: boolean;
only_media?: boolean;
limit?: number;
max_id?: string;
since_id?: string;
min_id?: string;
}): Promise<Response<Array<Entity.Status>>>;
getHomeTimeline(options?: {
local?: boolean;
limit?: number;
max_id?: string;
since_id?: string;
min_id?: string;
}): Promise<Response<Array<Entity.Status>>>;
getListTimeline(list_id: string, options?: {
limit?: number;
max_id?: string;
since_id?: string;
min_id?: string;
}): Promise<Response<Array<Entity.Status>>>;
getConversationTimeline(options?: {
limit?: number;
max_id?: string;
since_id?: string;
min_id?: string;
}): Promise<Response<Array<Entity.Conversation>>>;
deleteConversation(id: string): Promise<Response<{}>>;
readConversation(id: string): Promise<Response<Entity.Conversation>>;
getLists(): Promise<Response<Array<Entity.List>>>;
getList(id: string): Promise<Response<Entity.List>>;
createList(title: string): Promise<Response<Entity.List>>;
updateList(id: string, title: string): Promise<Response<Entity.List>>;
deleteList(id: string): Promise<Response<{}>>;
getAccountsInList(id: string, options?: {
limit?: number;
max_id?: string;
since_id?: string;
}): Promise<Response<Array<Entity.Account>>>;
addAccountsToList(id: string, account_ids: Array<string>): Promise<Response<{}>>;
deleteAccountsFromList(id: string, account_ids: Array<string>): Promise<Response<{}>>;
getMarkers(timeline: Array<string>): Promise<Response<Entity.Marker | {}>>;
saveMarkers(options?: {
home?: {
last_read_id: string;
};
notifications?: {
last_read_id: string;
};
}): Promise<Response<Entity.Marker>>;
getNotifications(options?: {
limit?: number;
max_id?: string;
since_id?: string;
min_id?: string;
exclude_types?: Array<Entity.NotificationType>;
account_id?: string;
}): Promise<Response<Array<Entity.Notification>>>;
getNotification(id: string): Promise<Response<Entity.Notification>>;
dismissNotifications(): Promise<Response<{}>>;
dismissNotification(id: string): Promise<Response<{}>>;
readNotifications(_options: {
id?: string;
max_id?: string;
}): Promise<Response<Entity.Notification | Array<Entity.Notification>>>;
subscribePushNotification(subscription: {
endpoint: string;
keys: {
p256dh: string;
auth: string;
};
}, data?: {
alerts: {
follow?: boolean;
favourite?: boolean;
reblog?: boolean;
mention?: boolean;
poll?: boolean;
};
} | null): Promise<Response<Entity.PushSubscription>>;
getPushSubscription(): Promise<Response<Entity.PushSubscription>>;
updatePushSubscription(data?: {
alerts: {
follow?: boolean;
favourite?: boolean;
reblog?: boolean;
mention?: boolean;
poll?: boolean;
};
} | null): Promise<Response<Entity.PushSubscription>>;
deletePushSubscription(): Promise<Response<{}>>;
search(q: string, type: 'accounts' | 'hashtags' | 'statuses', options?: {
limit?: number;
max_id?: string;
min_id?: string;
resolve?: boolean;
offset?: number;
following?: boolean;
account_id?: string;
exclude_unreviewed?: boolean;
}): Promise<Response<Entity.Results>>;
getInstance(): Promise<Response<Entity.Instance>>;
getInstancePeers(): Promise<Response<Array<string>>>;
getInstanceActivity(): Promise<Response<Array<Entity.Activity>>>;
getInstanceTrends(limit?: number | null): Promise<Response<Array<Entity.Tag>>>;
getInstanceDirectory(options?: {
limit?: number;
offset?: number;
order?: 'active' | 'new';
local?: boolean;
}): Promise<Response<Array<Entity.Account>>>;
getInstanceCustomEmojis(): Promise<Response<Array<Entity.Emoji>>>;
getInstanceAnnouncements(with_dismissed?: boolean | null): Promise<Response<Array<Entity.Announcement>>>;
dismissInstanceAnnouncement(id: string): Promise<Response<{}>>;
createEmojiReaction(_id: string, _emoji: string): Promise<Response<Entity.Status>>;
deleteEmojiReaction(_id: string, _emoji: string): Promise<Response<Entity.Status>>;
getEmojiReactions(_id: string): Promise<Response<Array<Entity.Reaction>>>;
getEmojiReaction(_id: string, _emoji: string): Promise<Response<Entity.Reaction>>;
userSocket(): WebSocket;
publicSocket(): WebSocket;
localSocket(): WebSocket;
tagSocket(tag: string): WebSocket;
listSocket(list_id: string): WebSocket;
directSocket(): WebSocket;
}