
export namespace Pub {
    const ACCEPT_TYPE = 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'

    export interface Config {
        uri: string,
    }

    export interface Object {
        id: string,
        type: string,  // FIXME
    }

    export interface Actor extends Object {
        ["@context"]: [
            "https://www.w3.org/ns/activitystreams",
            "https://w3id.org/security/v1",
        ],
        type: 'Person',
        name: string,
        url: string,
        summary?: string,
        icon?: string,
        image?: string,
        discoverable: boolean,
        preferredUsername: string,
        manuallyApprovesFollowers: boolean,
        indexable: boolean,
        published: string,
        inbox: string,
        publicKey: {
            id: string,
            owner: string,
            publicKeyPem: string,
        },
    }

    export interface Link {
        rel: string,
        type: string,
        href: string,
    }

    export interface Webfinger {
        subject: string,
        aliases: string[],
        links: Link[],
    }
}
