import { EventEmitter } from 'eventemitter3'; import type { Alias, Settings, Logging } from './api'; import type { Group } from './types'; import { Store } from './store'; export class AliasModule implements Alias { private log: Logging; private guid: string; private token: string; private node: string; private secure: boolean; private settings: Settings; private emitter: EventEmitter; constructor(log: Logging, settings: Settings, store: Store, guid: string, token: string, node: string, secure: boolean) { this.guid = guid; this.token = token; this.node = node; this.secure = secure; this.log = log; this.settings = settings; this.emitter = new EventEmitter(); } public addGroupListener(ev: (groups: Group[]) => void): void { this.emitter.on('group', ev); } public removeGroupListener(ev: (groups: Group[]) => void): void { this.emitter.off('group', ev); } public async close(): void {} public async setRevision(rev: number): Promise { console.log('set alias revision:', rev); } public async addGroup(sealed: boolean, dataType: string, subject: string, cardIds: string[]): Promise { return ''; } public async removeGroup(groupId: string): Promise {} public async setGroupSubject(groupId: string, subject: string): Promise {} public async setGroupCard(groupId: string, cardId: string): Promise {} public async clearGroupCard(groupId: string, cardId: string): Promise {} public async compare(groupIds: string[], cardIds: string[]): Promise> { return new Map(); } }