import {ClientConfig} from '../public/ConfigClass'; export enum DatabaseType { memory = 0, mysql = 1, sqlite = 2 } export enum LogLevel { error, warn, info, debug, verbose } export enum ThumbnailProcessingLib { Jimp = 0, gm = 1, sharp = 2 } export interface MySQLConfig { host: string; database: string; username: string; password: string; } export interface SQLiteConfig { storage: string; } export interface DataBaseConfig { type: DatabaseType; mysql?: MySQLConfig; sqlite?: SQLiteConfig; } export interface ThumbnailConfig { folder: string; processingLibrary: ThumbnailProcessingLib; qualityPriority: boolean; } export interface SharingConfig { updateTimeout: number; } export enum ReIndexingSensitivity { low, medium, high } export interface IndexingConfig { folderPreviewSize: number; cachedFolderTimeout: number; // Do not rescans the folder if seems ok reIndexingSensitivity: ReIndexingSensitivity; } export interface ServerConfig { port: number; imagesFolder: string; thumbnail: ThumbnailConfig; database: DataBaseConfig; enableThreading: boolean; sharing: SharingConfig; sessionTimeout: number; indexing: IndexingConfig; } export interface IPrivateConfig { Server: ServerConfig; Client: ClientConfig.Config; }