///
import type { Express, Router } from 'express';
import { Database, LocalizationText, ResourceType, SRL } from 'sonolus-core';
import { Query, SearchInfo } from '..';
import { BackgroundDetailsHandler } from './routes/backgrounds/details';
import { BackgroundListHandler } from './routes/backgrounds/list';
import { EffectDetailsHandler } from './routes/effects/details';
import { EffectListHandler } from './routes/effects/list';
import { EngineDetailsHandler } from './routes/engines/details';
import { EngineListHandler } from './routes/engines/list';
import { ServerInfoHandler } from './routes/info';
import { LevelDetailsHandler } from './routes/levels/details';
import { LevelListHandler } from './routes/levels/list';
import { ParticleDetailsHandler } from './routes/particles/details';
import { ParticleListHandler } from './routes/particles/list';
import { SkinDetailsHandler } from './routes/skins/details';
import { SkinListHandler } from './routes/skins/list';
import { CheckSessionHandler, CreateSessionHandler, FindSessionHandler } from './session';
export type ItemsConfig = {
search: SearchInfo;
};
export declare const defaultItemsConfig: {
readonly search: {
readonly options: {
readonly keywords: {
readonly name: {
readonly en: "#KEYWORDS";
};
readonly type: "text";
readonly placeholder: {
readonly en: "#KEYWORDS";
};
};
};
};
};
export declare class Sonolus {
private readonly authentication;
private readonly sessionDuration;
private readonly fallbackLocale;
readonly sessionAddress: string;
readonly router: Router;
readonly levelsConfig: TLevels;
readonly skinsConfig: TSkins;
readonly backgroundsConfig: TBackgrounds;
readonly effectsConfig: TEffects;
readonly particlesConfig: TParticles;
readonly enginesConfig: TEngines;
readonly db: Database;
createSessionHandler?: CreateSessionHandler;
findSessionHandler?: FindSessionHandler;
checkSessionHandler?: CheckSessionHandler;
serverInfoHandler: ServerInfoHandler;
levelListHandler: LevelListHandler>;
skinListHandler: SkinListHandler>;
backgroundListHandler: BackgroundListHandler>;
effectListHandler: EffectListHandler>;
particleListHandler: ParticleListHandler>;
engineListHandler: EngineListHandler>;
levelDetailsHandler: LevelDetailsHandler;
skinDetailsHandler: SkinDetailsHandler;
backgroundDetailsHandler: BackgroundDetailsHandler;
effectDetailsHandler: EffectDetailsHandler;
particleDetailsHandler: ParticleDetailsHandler;
engineDetailsHandler: EngineDetailsHandler;
constructor(app: Express, options?: Partial<{
basePath: string;
authentication: boolean;
sessionAddress: string;
sessionDuration: number;
fallbackLocale: string;
mode: 'custom' | 'redirect' | 'spa';
spaRoot: string;
levels: TLevels;
skins: TSkins;
backgrounds: TBackgrounds;
effects: TEffects;
particles: TParticles;
engines: TEngines;
}>);
load(path: string): void;
add(type: T, data: Buffer | string, hash?: string): SRL;
localize(text: LocalizationText, locale: string): string;
private postAuthenticate;
private getAPI;
private checkSession;
}