import { ConfigStore } from '../config';
import { VariableCommunicator } from '../communication';
import { SecurityChecker } from '../security';
import { VideoService, WeatherService, PermissionChecker, OperationRecordService, ReleasedVariableService, TextLibraryService, LanguageService, SystemTextLibraryService } from '../service';
import { Subject } from 'rxjs';
export interface GuiContext {
    readonly configStore: ConfigStore;
    readonly variableCommunicator: VariableCommunicator;
    readonly permissionChecker: PermissionChecker;
    readonly operationRecordService: OperationRecordService;
    readonly releasedVariableService: ReleasedVariableService;
    readonly securityChecker: SecurityChecker;
    readonly videoService: VideoService;
    readonly weatherService: WeatherService;
    readonly textLibraryService?: TextLibraryService;
    readonly languageService?: LanguageService;
    readonly systemTextLibraryService?: SystemTextLibraryService;
    readonly configureViewId?: number;
    readonly configureViewCode?: string;
    readonly languageChanged$?: Subject<number | null>;
    getCurrentLanguageId?(): number | null;
    getDefaultLanguageId?(): number;
    getLanguageCultureById?(languageId: number | null): string | null;
    updateCurrentLanguageId?(languageId: number | null): Promise<void>;
    dispose(): void;
}
