import { TSidebar } from "../utils/sidebarGenerator";
import { IConfigObj, TGrading } from "./config";
import { IExercise } from "./exercise-obj";
export interface IConfigManagerAttributes {
    grading: TGrading;
    disableGrading: boolean;
    version: string;
    mode?: string;
}
export interface IConfigManager {
    validLanguages?: any;
    get: () => IConfigObj;
    clean: () => void;
    getExercise: (slug: string | undefined) => IExercise;
    startExercise: (slug: string) => IExercise;
    reset: (slug: string) => void;
    createExercise: (slug: string, content: string, language: string) => boolean;
    deleteExercise: (slug: string) => boolean;
    buildIndex: () => boolean | void;
    watchIndex: (onChange: (...args: Array<any>) => void) => void;
    save: () => void;
    getSidebar: () => TSidebar;
    noCurrentExercise: () => void;
    getAllExercises: () => IExercise[];
}
