import { CourseWare } from './CourseWare';
import { Displayable, Question, ViewComponent, useQuestionView as _useQuestionView } from '../../common-ui/dist/common-ui.es.js';
import { DataShape, ShapeDescriptor, ViewDescriptor, ViewData, Answer, Evaluation } from '../../common/dist/index.mjs';
export { useViewable } from '../../common-ui/dist/common-ui.es.js';
export declare const useQuestionView: typeof _useQuestionView;
/**
 * A `CourseWare` is a container for a set of related `Question` types.
 */
export { CourseWare };
/**
 * The base class for all interactive course content.
 * A `Displayable` defines the data it requires and the Vue components used to render it.
 */
export { Displayable };
/**
 * The base class for all questions. It extends `Displayable` and adds
 * logic for evaluating user answers. This is the primary class developers
 * will extend to create new question types.
 */
export { Question };
/**
 * A type representing a Vue component that can be used to render a `Displayable`.
 */
export type { ViewComponent };
/**
 * Represents the actual data passed to a `Displayable`'s constructor.
 */
export type { ViewData };
/**
 * Represents a user's answer to a `Question`.
 */
export type { Answer };
/**
 * Represents the evaluation of a user's `Answer`.
 */
export type { Evaluation };
/**
 * A descriptor that uniquely identifies a `ViewComponent`.
 */
export type { ViewDescriptor };
/**
 * A descriptor that uniquely identifies a `DataShape`.
 */
export type { ShapeDescriptor };
export { default as chess } from './chess';
export { default as french } from './french';
export { default as math } from './math';
export { default as piano } from './piano';
export { default as pitch } from './pitch';
export { default as sightSing } from './sightsing';
export { default as typing } from './typing';
export { default as wordWork } from './word-work';
export { BlanksCard, BlanksCardDataShapes } from './default/questions/fillIn';
export { default as gradeSpellingAttempt } from './default/questions/fillIn/blanksCorrection';
export { default as SkMidi, eventsToSyllableSequence, SyllableSequence, transposeSyllableSeq, } from './piano/utility/midi';
export { default as MidiConfig } from './piano/utility/MidiConfig.vue';
export { default as SyllableSeqVis } from './piano/utility/SyllableSeqVis.vue';
export declare class AllCourseWare {
    private readonly courseWareList;
    get courses(): CourseWare[];
    constructor(courses: CourseWare[]);
    getCourseWare(name: string): CourseWare | undefined;
    private cachedRawViews;
    allViewsRaw(): {
        [index: string]: ViewComponent;
    };
    /**
     * allViews supplies the CardViewer component with the required
     * Vue components it needs at run-time.
     */
    allViews(): {
        [index: string]: ViewComponent;
    };
    getView(viewDescription: ViewDescriptor | string): ViewComponent;
    /**
     * @returns a string that displays a summary of registered courses
     */
    toString(): string;
    allDataShapesRaw(): DataShape[];
    allDataShapes(): (ShapeDescriptor & {
        displayable: typeof Displayable;
    })[];
    getDataShape(description: ShapeDescriptor): DataShape;
}
export declare const allCourseWare: AllCourseWare;
//# sourceMappingURL=index.d.ts.map