plugin_options: TObject<
    {
        ajv: TOptional<TAny>;
        createPost: TFunction<
            [
                TUnion<
                    [
                        TObject<
                            {
                                access_token: TOptional<TString>;
                                action: TOptional<TUnion<[(...), (...), (...), (...)]>>;
                                audio: TOptional<TUnion<[(...), (...)]>>;
                                author: TOptional<TUnion<[(...), (...)]>>;
                                "bookmark-of": TOptional<TString>;
                                category: TOptional<TUnion<[(...), (...)]>>;
                                checkin: TOptional<TString>;
                                content: TOptional<TUnion<[(...), (...)]>>;
                                date: TOptional<TUnion<[(...), (...), (...)]>>;
                                end: TOptional<TUnion<[(...), (...), (...)]>>;
                                "in-reply-to": TOptional<TString>;
                                "like-of": TOptional<TString>;
                                location: TOptional<TUnion<[(...), (...), (...)]>>;
                                "mp-channel": TOptional<TString>;
                                "mp-destination": TOptional<TString>;
                                "mp-limit": TOptional<TNumber>;
                                "mp-photo-alt": TOptional<TUnion<[(...), (...)]>>;
                                "mp-post-status": TOptional<TString>;
                                "mp-slug": TOptional<TString>;
                                "mp-syndicate-to": TOptional<TUnion<[(...), (...)]>>;
                                name: TOptional<TString>;
                                photo: TOptional<TAny>;
                                "post-status": TOptional<TString>;
                                published: TOptional<TUnion<[(...), (...), (...)]>>;
                                "read-of": TOptional<TUnion<[(...), (...), (...)]>>;
                                "read-status": TOptional<TUnion<[(...), (...), (...)]>>;
                                "repost-of": TOptional<TString>;
                                rsvp: TOptional<TUnion<[(...), (...), (...), (...)]>>;
                                start: TOptional<TUnion<[(...), (...), (...)]>>;
                                summary: TOptional<TString>;
                                syndication: TOptional<TUnion<[(...), (...)]>>;
                                type: TOptional<TUnion<[(...), (...)]>>;
                                updated: TOptional<TUnion<[(...), (...), (...)]>>;
                                url: TOptional<TUnion<[(...), (...)]>>;
                                video: TOptional<TUnion<[(...), (...)]>>;
                                visibility: TOptional<TUnion<[(...), (...), (...)]>>;
                            },
                        >,
                        TObject<
                            {
                                access_token: TOptional<TString>;
                                action: TOptional<TUnion<[(...), (...), (...), (...)]>>;
                                audio: TOptional<TUnion<[(...), (...)]>>;
                                author: TOptional<TUnion<[(...), (...)]>>;
                                "bookmark-of": TOptional<TString>;
                                category: TOptional<TUnion<[(...), (...)]>>;
                                checkin: TOptional<TString>;
                                content: TOptional<TUnion<[(...), (...)]>>;
                                date: TOptional<TUnion<[(...), (...), (...)]>>;
                                end: TOptional<TUnion<[(...), (...), (...)]>>;
                                h: TOptional<TUnion<[(...), (...)]>>;
                                "in-reply-to": TOptional<TString>;
                                "like-of": TOptional<TString>;
                                location: TOptional<TUnion<[(...), (...), (...)]>>;
                                "mp-channel": TOptional<TString>;
                                "mp-destination": TOptional<TString>;
                                "mp-limit": TOptional<TNumber>;
                                "mp-photo-alt": TOptional<TUnion<[(...), (...)]>>;
                                "mp-post-status": TOptional<TString>;
                                "mp-slug": TOptional<TString>;
                                "mp-syndicate-to": TOptional<TUnion<[(...), (...)]>>;
                                name: TOptional<TString>;
                                photo: TOptional<TAny>;
                                "post-status": TOptional<TString>;
                                published: TOptional<TUnion<[(...), (...), (...)]>>;
                                "read-of": TOptional<TUnion<[(...), (...), (...)]>>;
                                "read-status": TOptional<TUnion<[(...), (...), (...)]>>;
                                "repost-of": TOptional<TString>;
                                rsvp: TOptional<TUnion<[(...), (...), (...), (...)]>>;
                                start: TOptional<TUnion<[(...), (...), (...)]>>;
                                summary: TOptional<TString>;
                                syndication: TOptional<TUnion<[(...), (...)]>>;
                                updated: TOptional<TUnion<[(...), (...), (...)]>>;
                                url: TOptional<TUnion<[(...), (...)]>>;
                                video: TOptional<TUnion<[(...), (...)]>>;
                                visibility: TOptional<TUnion<[(...), (...), (...)]>>;
                            },
                        >,
                    ],
                >,
            ],
            TPromise<
                TObject<{ details: TOptional<TArray<TString>>; summary: TString }>,
            >,
        >;
        deletePost: TFunction<
            [TString],
            TPromise<
                TObject<{ details: TOptional<TArray<TString>>; summary: TString }>,
            >,
        >;
        includeErrorDescription: TOptional<TBoolean>;
        isAccessTokenRevoked: TFunction<[TString], TPromise<TBoolean>>;
        jf2ToLocation: TFunction<
            [
                TUnion<
                    [
                        TObject<
                            {
                                access_token: TOptional<TString>;
                                action: TOptional<TUnion<[(...), (...), (...), (...)]>>;
                                audio: TOptional<TUnion<[(...), (...)]>>;
                                author: TOptional<TUnion<[(...), (...)]>>;
                                "bookmark-of": TOptional<TString>;
                                category: TOptional<TUnion<[(...), (...)]>>;
                                checkin: TOptional<TString>;
                                content: TOptional<TUnion<[(...), (...)]>>;
                                date: TOptional<TUnion<[(...), (...), (...)]>>;
                                end: TOptional<TUnion<[(...), (...), (...)]>>;
                                "in-reply-to": TOptional<TString>;
                                "like-of": TOptional<TString>;
                                location: TOptional<TUnion<[(...), (...), (...)]>>;
                                "mp-channel": TOptional<TString>;
                                "mp-destination": TOptional<TString>;
                                "mp-limit": TOptional<TNumber>;
                                "mp-photo-alt": TOptional<TUnion<[(...), (...)]>>;
                                "mp-post-status": TOptional<TString>;
                                "mp-slug": TOptional<TString>;
                                "mp-syndicate-to": TOptional<TUnion<[(...), (...)]>>;
                                name: TOptional<TString>;
                                photo: TOptional<TAny>;
                                "post-status": TOptional<TString>;
                                published: TOptional<TUnion<[(...), (...), (...)]>>;
                                "read-of": TOptional<TUnion<[(...), (...), (...)]>>;
                                "read-status": TOptional<TUnion<[(...), (...), (...)]>>;
                                "repost-of": TOptional<TString>;
                                rsvp: TOptional<TUnion<[(...), (...), (...), (...)]>>;
                                start: TOptional<TUnion<[(...), (...), (...)]>>;
                                summary: TOptional<TString>;
                                syndication: TOptional<TUnion<[(...), (...)]>>;
                                type: TOptional<TUnion<[(...), (...)]>>;
                                updated: TOptional<TUnion<[(...), (...), (...)]>>;
                                url: TOptional<TUnion<[(...), (...)]>>;
                                video: TOptional<TUnion<[(...), (...)]>>;
                                visibility: TOptional<TUnion<[(...), (...), (...)]>>;
                            },
                        >,
                        TObject<
                            {
                                access_token: TOptional<TString>;
                                action: TOptional<TUnion<[(...), (...), (...), (...)]>>;
                                audio: TOptional<TUnion<[(...), (...)]>>;
                                author: TOptional<TUnion<[(...), (...)]>>;
                                "bookmark-of": TOptional<TString>;
                                category: TOptional<TUnion<[(...), (...)]>>;
                                checkin: TOptional<TString>;
                                content: TOptional<TUnion<[(...), (...)]>>;
                                date: TOptional<TUnion<[(...), (...), (...)]>>;
                                end: TOptional<TUnion<[(...), (...), (...)]>>;
                                h: TOptional<TUnion<[(...), (...)]>>;
                                "in-reply-to": TOptional<TString>;
                                "like-of": TOptional<TString>;
                                location: TOptional<TUnion<[(...), (...), (...)]>>;
                                "mp-channel": TOptional<TString>;
                                "mp-destination": TOptional<TString>;
                                "mp-limit": TOptional<TNumber>;
                                "mp-photo-alt": TOptional<TUnion<[(...), (...)]>>;
                                "mp-post-status": TOptional<TString>;
                                "mp-slug": TOptional<TString>;
                                "mp-syndicate-to": TOptional<TUnion<[(...), (...)]>>;
                                name: TOptional<TString>;
                                photo: TOptional<TAny>;
                                "post-status": TOptional<TString>;
                                published: TOptional<TUnion<[(...), (...), (...)]>>;
                                "read-of": TOptional<TUnion<[(...), (...), (...)]>>;
                                "read-status": TOptional<TUnion<[(...), (...), (...)]>>;
                                "repost-of": TOptional<TString>;
                                rsvp: TOptional<TUnion<[(...), (...), (...), (...)]>>;
                                start: TOptional<TUnion<[(...), (...), (...)]>>;
                                summary: TOptional<TString>;
                                syndication: TOptional<TUnion<[(...), (...)]>>;
                                updated: TOptional<TUnion<[(...), (...), (...)]>>;
                                url: TOptional<TUnion<[(...), (...)]>>;
                                video: TOptional<TUnion<[(...), (...)]>>;
                                visibility: TOptional<TUnion<[(...), (...), (...)]>>;
                            },
                        >,
                    ],
                >,
            ],
            TObject<
                {
                    store: TString;
                    store_deleted: TOptional<TString>;
                    website: TString;
                },
            >,
        >;
        logPrefix: TOptional<TString>;
        me: TUnion<[TString, TString]>;
        mediaEndpoint: TOptional<TString>;
        micropubEndpoint: TOptional<TString>;
        multipartFormDataMaxFileSize: TOptional<TNumber>;
        reportAllAjvErrors: TOptional<TBoolean>;
        syndicateTo: TOptional<
            TArray<
                TObject<
                    {
                        name: TString;
                        service: TOptional<
                            TObject<
                                { name: TString; photo: TOptional<TString>; url: TString },
                            >,
                        >;
                        uid: TString;
                        user: TOptional<
                            TObject<
                                { name: TString; photo: TOptional<TString>; url: TString },
                            >,
                        >;
                    },
                >,
            >,
        >;
        undeletePost: TOptional<
            TFunction<
                [TString],
                TPromise<
                    TObject<{ details: TOptional<TArray<TString>>; summary: TString }>,
                >,
            >,
        >;
        updatePost: TFunction<
            [
                TString,
                TObject<
                    {
                        add: TOptional<TAny>;
                        delete: TOptional<TString>;
                        replace: TOptional<TAny>;
                    },
                >,
            ],
            TPromise<
                TObject<
                    {
                        details: TOptional<TArray<TString>>;
                        other_details: TOptional<TAny>;
                        summary: TString;
                    },
                >,
            >,
        >;
    },
> = ...