server/types/entities/instance.ts

48 lines
1 KiB
TypeScript
Raw Normal View History

import type { APIAccount } from "./account";
import type { APIStats } from "./stats";
import type { APIURLs } from "./urls";
2023-09-11 05:31:08 +02:00
2023-09-12 22:48:10 +02:00
export interface APIInstance {
2023-09-11 05:31:08 +02:00
uri: string;
title: string;
description: string;
email: string;
version: string;
thumbnail: string | null;
2023-09-12 22:48:10 +02:00
urls: APIURLs;
stats: APIStats;
2023-09-11 05:46:20 +02:00
languages: string[];
2023-09-11 05:31:08 +02:00
registrations: boolean;
approval_required: boolean;
invites_enabled: boolean;
max_toot_chars?: number;
configuration: {
statuses: {
max_characters: number;
max_media_attachments: number;
characters_reserved_per_url: number;
};
media_attachments: {
2023-09-11 05:46:20 +02:00
supported_mime_types: string[];
2023-09-11 05:31:08 +02:00
image_size_limit: number;
image_matrix_limit: number;
video_size_limit: number;
video_frame_limit: number;
video_matrix_limit: number;
};
polls: {
max_options: number;
max_characters_per_option: number;
min_expiration: number;
max_expiration: number;
};
};
2023-09-12 22:48:10 +02:00
contact_account: APIAccount;
rules: APIInstanceRule[];
2023-09-11 05:46:20 +02:00
}
2023-09-11 05:31:08 +02:00
2023-09-12 22:48:10 +02:00
export interface APIInstanceRule {
2023-09-11 05:31:08 +02:00
id: string;
text: string;
2023-09-11 05:46:20 +02:00
}