61 lines
1.8 KiB
TypeScript

import { Observable } from 'rxjs';
import { WindowState } from '../types/window-state.type';
import { WindowIdle } from '../types/window-idle.type';
import { NotificationRequest } from '../models/notification';
import { TranslateLoader } from '@ngx-translate/core';
import { StatusCode } from '@ucap-webmessenger/core';
import { UpdateInfo, UpdateCheckConfig } from '../models/update-info';
export abstract class NativeService {
abstract postAppInit(): void;
abstract logout(): Observable<void>;
abstract changeStatus(): Observable<StatusCode>;
abstract showSetting(): Observable<void>;
abstract changeAutoLaunch(autoLaunch: boolean): Promise<boolean>;
abstract notify(noti: NotificationRequest): void;
abstract closeAllNotify(): void;
abstract checkForUpdates(currentVersion: string): Promise<boolean>;
abstract checkForInstantUpdates(
config: UpdateCheckConfig
): Observable<UpdateInfo>;
abstract applyInstantUpdates(): void;
abstract showImageViewer(): void;
abstract saveFile(
buffer: Buffer,
fileName: string,
mimeType: string,
path?: string
): Promise<string>;
abstract readFile(path: string): Promise<Buffer>;
abstract openDefaultDownloadFolder(): Promise<boolean>;
abstract openTargetFolder(
folderPath?: string,
make?: boolean
): Promise<boolean>;
abstract openTargetItem(filePath?: string): Promise<boolean>;
abstract windowStateChanged(): Observable<WindowState>;
abstract windowClose(): void;
abstract windowMinimize(): void;
abstract windowMaximize(): void;
abstract idleStateChanged(): Observable<WindowIdle>;
abstract chatOpenRoom(): Observable<string>;
abstract msgOpenMessage(): Observable<string>;
abstract getTranslateLoader(
prefix?: string,
suffix?: string
): TranslateLoader;
abstract openDefaultBrowser(url: string): void;
}