/// import { LanguageMap } from 'intl-ts'; import { EconomicSystem, EmailCheck, Game, User } from '@gecogvidanto/shared'; import { langType } from '../locale'; import { ServerInfo } from '../tools'; import Context from './Context'; import DryContextType from './DryContextType'; declare type UserReader = (id: string) => Promise; declare type EmailChecker = (emailCheck: EmailCheck) => Promise; declare type GamesSearcher = () => Promise; declare type EconomicSystemSearcher = () => Promise[]>; declare class SdataContext extends Context { set serverInfo(serverInfo: ServerInfo); get serverInfo(): ServerInfo; set captchaKey(captchaKey: string); get captchaKey(): string; } declare class LangContext extends Context { set preferences(preferences: ReadonlyArray); get preferences(): ReadonlyArray; set languageMap(languageMap: LanguageMap); } declare class UserContext extends Context['user']> { private static _userReader?; private static _emailChecker?; static set userReader(userReader: UserReader); static set emailChecker(emailChecker: EmailChecker); set logged(logged: User); get logged(): User; read: (id: string) => User; checkEmail: (emailCheck: EmailCheck) => boolean; } declare class GameContext extends Context['game']> { private static _gamesSearcher?; static set gamesSearcher(gamesSearcher: GamesSearcher); set current(current: Game); get current(): Game; search: () => Game[]; } declare class EconomicSystemContext extends Context['economicSystems']> { private static _economicSystemsSearcher?; static set economicSystemsSearcher(economicSystemsSearcher: EconomicSystemSearcher); search: () => EconomicSystem[]; } /** * The context used by server renderer. */ export default class ServerContext extends Context implements DryContextType { statusCode?: number; url?: string; constructor(); static set dataProviders({ userReader, emailChecker, gamesSearcher, economicSystemsSearcher, }: { userReader: UserReader; emailChecker: EmailChecker; gamesSearcher: GamesSearcher; economicSystemsSearcher: EconomicSystemSearcher; }); get sdata(): SdataContext; get lang(): LangContext; get user(): UserContext; get game(): GameContext; get economicSystems(): EconomicSystemContext; } export declare const ServerContextProvider: import("react").Provider; export declare function useServerContext(): ServerContext | undefined; export {};