export type Service = { readonly name: string readonly version: string readonly state: ServiceState readonly type: ServiceType readonly uri: string readonly title?: string readonly description?: string } export type ServiceDeletedEvent = { readonly name: string readonly timestamp: string } export type ServiceUpsertedEvent = { readonly service: Service readonly timestamp: string } export type ServiceState = 'unavailable' | 'available' | 'error' export type ServiceType = 'public' | 'internal' export type JSONValue = | string | number | boolean | { readonly [x: string]: JSONValue } | readonly JSONValue[]