import { Path, Patp } from '../lib'; export declare type MdAppName = 'groups' | 'graph'; export declare type MetadataUpdate = MetadataUpdateInitial | MetadataUpdateAdd | MetadataUpdateUpdate | MetadataUpdateRemove | MetadataUpdateEdit; export interface MetadataUpdateInitial { associations: ResourceAssociations; } export declare type ResourceAssociations = { [p in Path]: Association; }; export declare type MetadataUpdateAdd = { add: AssociationPoke; }; export declare type MetadataUpdateUpdate = { update: AssociationPoke; }; export interface MetadataUpdateEdit { edit: { resource: MdResource; group: string; edit: MetadataEditField; }; } export declare type MetadataEditField = Partial>; export declare type MetadataUpdateRemove = { remove: { resource: MdResource; group: string; }; }; export interface MdResource { resource: string; 'app-name': MdAppName; } export interface MetadataUpdatePreview { group: string; channels: Associations; 'channel-count': number; members: number; metadata: Metadata; } export declare type Associations = { groups: AppAssociations; graph: AppAssociations; }; export declare type AppAssociations = { [p in Path]: Association; }; export declare type Association = MdResource & { group: Path; metadata: Metadata; }; export interface AssociationPoke { group: Path; resource: MdResource; metadata: Metadata; } export interface Metadata { color: string; creator: Patp; 'date-created': string; description: string; title: string; config: C; hidden: boolean; picture: string; preview: boolean; vip: PermVariation; } export declare type MetadataConfig = GroupConfig | GraphConfig; export interface GraphConfig { graph: string; } export interface GroupConfig { group: undefined | {} | MdResource; } export declare type PermVariation = '' | ' ' | 'reader-comments' | 'member-metadata' | 'host-feed' | 'admin-feed';