import { AxiosResponse } from 'axios'; import { Transfer } from './digitaltwin'; import ServiceClient from './shared/service-client/ServiceClient'; declare type DetailTypes = 'TRANSFER_INITIATED' | 'TRANSFER_CANCELED' | 'TRANSFER_DENIED' | 'TRANSFER_ACCEPTED' | 'OWNERSHIP_REQUEST_ACCEPTED' | 'DIGITALTWIN_SOLD'; export interface NotificationDetailBase { id: string; identityId: string; isRead: boolean; readAt?: number; createdAt: number; type: DetailTypes; detail: Record; } export interface TransferInitiatedDetail extends NotificationDetailBase { type: 'TRANSFER_INITIATED'; detail: { transfer: Transfer; digitaltwinId: string; digitaltwinName: string; organizationId: string; identityId: string; }; } export interface TransferCanceledDetail extends NotificationDetailBase { type: 'TRANSFER_CANCELED'; detail: { transfer: Transfer; digitaltwinId: string; digitaltwinName: string; organizationId: string; identityId: string; }; } export interface DigitaltwinSoldDetail extends NotificationDetailBase { type: 'DIGITALTWIN_SOLD'; detail: { digitaltwinId: string; digitaltwinName: string; organizationId: string; identityId: string; newOwner: string; price?: string; }; } export interface OwnershipRequestAcceptedDetail extends NotificationDetailBase { type: 'OWNERSHIP_REQUEST_ACCEPTED'; detail: { digitaltwinId: string; digitaltwinName: string; organizationId: string; identityId: string; newOwner: string; responseComment: string; }; } export interface TransferDeniedDetail extends NotificationDetailBase { type: 'TRANSFER_DENIED'; detail: { transfer: Transfer; digitaltwinId: string; digitaltwinName: string; organizationId: string; identityId: string; }; } export interface TransferAcceptedDetail extends NotificationDetailBase { type: 'TRANSFER_ACCEPTED'; detail: { transfer: Transfer; digitaltwinId: string; digitaltwinName: string; organizationId: string; identityId: string; }; } export interface GetNotifications { limit?: number; continuationToken?: string; } export interface ReadNotification { id: string; } export declare type Notification = TransferInitiatedDetail | TransferDeniedDetail | TransferAcceptedDetail | TransferCanceledDetail | DigitaltwinSoldDetail | OwnershipRequestAcceptedDetail; export interface NotificationsResponse { notifications: Notification[]; continuationToken?: string; } export interface NotificationReadResponse { notification: Notification; } export declare class NotificationClient extends ServiceClient { get(options?: GetNotifications): Promise>; read(options: ReadNotification): Promise>; } export {};