2023-01-08 06:21:09 +00:00
|
|
|
import type { mastodon } from 'masto'
|
2022-12-17 16:55:29 +00:00
|
|
|
import type { Ref } from 'vue'
|
2023-01-04 10:21:18 +00:00
|
|
|
import type { MarkNonNullable, Mutable } from './utils'
|
2022-11-15 15:48:23 +00:00
|
|
|
|
|
|
|
export interface AppInfo {
|
|
|
|
id: string
|
|
|
|
name: string
|
|
|
|
website: string | null
|
|
|
|
redirect_uri: string
|
|
|
|
client_id: string
|
|
|
|
client_secret: string
|
|
|
|
vapid_key: string
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface UserLogin {
|
|
|
|
server: string
|
2022-11-29 20:51:52 +00:00
|
|
|
token?: string
|
2023-01-08 06:21:09 +00:00
|
|
|
account: mastodon.v1.AccountCredentials
|
2022-12-17 23:29:16 +00:00
|
|
|
vapidKey?: string
|
2023-01-08 06:21:09 +00:00
|
|
|
pushSubscription?: mastodon.v1.WebPushSubscription
|
2022-11-15 15:48:23 +00:00
|
|
|
}
|
2022-11-16 16:11:08 +00:00
|
|
|
|
2023-01-08 06:21:09 +00:00
|
|
|
export interface ElkMasto extends mastodon.Client {
|
|
|
|
loginTo (user?: Omit<UserLogin, 'account'> & { account?: mastodon.v1.AccountCredentials }): Promise<mastodon.Client>
|
2022-12-17 16:55:29 +00:00
|
|
|
loggedIn: Ref<boolean>
|
|
|
|
}
|
|
|
|
|
2022-11-17 07:35:42 +00:00
|
|
|
export type PaginatorState = 'idle' | 'loading' | 'done' | 'error'
|
2022-11-21 06:55:31 +00:00
|
|
|
|
2022-11-30 00:47:54 +00:00
|
|
|
export interface GroupedNotifications {
|
|
|
|
id: string
|
2022-12-11 22:40:40 +00:00
|
|
|
type: Exclude<string, 'grouped-reblogs-and-favourites'>
|
2023-01-08 06:21:09 +00:00
|
|
|
items: mastodon.v1.Notification[]
|
2022-11-30 00:47:54 +00:00
|
|
|
}
|
2022-11-30 04:50:29 +00:00
|
|
|
|
2022-12-11 22:40:40 +00:00
|
|
|
export interface GroupedAccountLike {
|
2023-01-08 06:21:09 +00:00
|
|
|
account: mastodon.v1.Account
|
|
|
|
favourite?: mastodon.v1.Notification
|
|
|
|
reblog?: mastodon.v1.Notification
|
2022-12-11 22:40:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export interface GroupedLikeNotifications {
|
|
|
|
id: string
|
|
|
|
type: 'grouped-reblogs-and-favourites'
|
2023-01-08 06:21:09 +00:00
|
|
|
status: mastodon.v1.Status
|
2022-12-11 22:40:40 +00:00
|
|
|
likes: GroupedAccountLike[]
|
|
|
|
}
|
|
|
|
|
2023-01-08 06:21:09 +00:00
|
|
|
export type NotificationSlot = GroupedNotifications | GroupedLikeNotifications | mastodon.v1.Notification
|
2022-12-11 22:40:40 +00:00
|
|
|
|
2022-12-13 14:03:30 +00:00
|
|
|
export interface Draft {
|
2023-01-08 06:21:09 +00:00
|
|
|
editingStatus?: mastodon.v1.Status
|
2022-12-13 14:03:30 +00:00
|
|
|
initialText?: string
|
2023-01-08 06:21:09 +00:00
|
|
|
params: MarkNonNullable<Mutable<mastodon.v1.CreateStatusParams>, 'status' | 'language' | 'sensitive' | 'spoilerText' | 'visibility'>
|
|
|
|
attachments: mastodon.v1.MediaAttachment[]
|
2023-01-05 15:42:36 +00:00
|
|
|
lastUpdated: number
|
2022-12-13 14:03:30 +00:00
|
|
|
}
|
|
|
|
export type DraftMap = Record<string, Draft>
|
2022-12-26 19:33:19 +00:00
|
|
|
|
2023-01-07 08:55:01 +00:00
|
|
|
export interface ConfirmDialogLabel {
|
|
|
|
title: string
|
|
|
|
description?: string
|
|
|
|
confirm?: string
|
|
|
|
cancel?: string
|
|
|
|
}
|
|
|
|
export type ConfirmDialogChoice = 'confirm' | 'cancel'
|
|
|
|
|
2022-12-26 19:33:19 +00:00
|
|
|
export interface BuildInfo {
|
|
|
|
version: string
|
|
|
|
commit: string
|
|
|
|
time: number
|
|
|
|
branch: string
|
2023-01-06 16:20:12 +00:00
|
|
|
env: 'preview' | 'canary' | 'dev' | 'release'
|
2022-12-26 19:33:19 +00:00
|
|
|
}
|
2022-12-28 01:06:54 +00:00
|
|
|
|
|
|
|
export type FontSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
|
|
export type ColorMode = 'light' | 'dark'
|