import { DecryptedItemInterface, TrustedContactInterface } from '@standardnotes/models' import { AbstractService } from '../Service/AbstractService' import { SharedVaultInviteServerHash, SharedVaultUserServerHash } from '@standardnotes/responses' import { ItemSignatureValidationResult } from './UseCase/Types/ItemSignatureValidationResult' export enum ContactServiceEvent {} export interface ContactServiceInterface extends AbstractService { isCollaborationEnabled(): boolean enableCollaboration(): Promise getCollaborationID(): string getCollaborationIDFromInvite(invite: SharedVaultInviteServerHash): string addTrustedContactFromCollaborationID( collaborationID: string, name?: string, ): Promise getCollaborationIDForTrustedContact(contact: TrustedContactInterface): string createOrEditTrustedContact(params: { contactUuid: string name?: string publicKey: string signingPublicKey: string }): Promise editTrustedContactFromCollaborationID( contact: TrustedContactInterface, params: { name: string; collaborationID: string }, ): Promise deleteContact(contact: TrustedContactInterface): Promise getAllContacts(): TrustedContactInterface[] getSelfContact(): TrustedContactInterface | undefined findTrustedContact(userUuid: string): TrustedContactInterface | undefined findTrustedContactForServerUser(user: SharedVaultUserServerHash): TrustedContactInterface | undefined findTrustedContactForInvite(invite: SharedVaultInviteServerHash): TrustedContactInterface | undefined isItemAuthenticallySigned(item: DecryptedItemInterface): ItemSignatureValidationResult }