import { Publisher } from './publisher.js'; import { Context } from '../enums/context.js'; import { PermissionLevelOptions } from '../enums/permissionLevel/permissionLevel.js'; import { DiscriminatedItem } from '../item/item.js'; import { Account, Member } from '../member/member.js'; import { UUID } from '../types.js'; export interface App { id: UUID; key: string; name: string; description: string; url: string; thumbnail: string; publisher: Publisher; createdAt: string; updatedAt: string; } export interface AppIdentification { key: string; } export type AuthTokenSubject = { accountId?: Account['id']; itemId: DiscriminatedItem['id']; origin: string; } & AppIdentification; type Data = { [key: string]: unknown; }; export type AppAction = { id: string; item: DiscriminatedItem; account: Account; type: string; data: T; createdAt: string; }; export declare enum AppDataVisibility { Item = "item", Member = "member" } export type AppData = { id: string; item: DiscriminatedItem; creator: Account | null; account: Account; type: string; visibility: `${AppDataVisibility}` | AppDataVisibility; data: T; createdAt: string; updatedAt: string; }; export type AppSetting = { id: UUID; item: DiscriminatedItem; creator?: Member | null; name: string; data: T; createdAt: string; updatedAt: string; }; export type LocalContext = { accountId?: UUID; /** @deprecated use accountId */ memberId?: UUID; apiHost: string; context: 'standalone' | `${Context}`; dev?: boolean; itemId: UUID; lang?: string; mobile?: boolean; offline?: boolean; permission: PermissionLevelOptions; settings?: unknown; standalone?: boolean; }; export {};