import { MastodonEmoji } from "./Emojis";
import { Visibility } from "./Visibility";
import { Account } from "./Account";
import { Attachment } from "./Attachment";
import { Mention } from "./Mention";
import { Poll } from "./Poll";
import { Card } from "./Card";
import { Tag } from "./Tag";

/**
 * Basic type for a status on Mastodon
 */
export type Status = {
    id: string;
    uri: string;
    url: string | null;
    account: Account;
    in_reply_to_id: string | null;
    in_reply_to_account_id: string | null;
    reblog: Status | null;
    content: string;
    created_at: string;
    emojis: [MastodonEmoji];
    replies_count: number;
    reblogs_count: number;
    favourites_count: number;
    reblogged: boolean | null;
    favourited: boolean | null;
    muted: boolean | null;
    sensitive: boolean;
    spoiler_text: string;
    visibility: Visibility;
    media_attachments: [Attachment];
    mentions: [Mention];
    tags: [Tag];
    card: Card | null;
    poll: Poll | null;
    application: any;
    pinned: boolean | null;
};
