import { Question } from '../../../../../common-ui/dist/common-ui.es.js';
import { ViewData, DataShapeName, FieldType, Status, RadioMultipleChoiceAnswer } from '../../../../../common/dist/index.mjs';
/**
 * The 15 sane keys in music theory.
 */
export declare const keys: string[];
export declare class IdentifyKeyQuestion extends Question {
    static dataShapes: {
        name: DataShapeName;
        fields: {
            name: string;
            type: FieldType;
            validator: {
                test: (value: string) => {
                    msg: string;
                    status: Status;
                };
            };
        }[];
    }[];
    static views: import('vue').DefineComponent<{
        data: ViewData[];
        modifyDifficulty: number;
    }, {
        answer: import('vue').Ref<string, string>;
        question: import('vue').ComputedRef<IdentifyKeyQuestion | undefined>;
        choices: import('vue').ComputedRef<string[]>;
        submit: () => void;
        priorSessionViews: import('vue').Ref<number>;
        priorAttempts: import('vue').Ref<number>;
        priorAnswers: import('vue').Ref<[import('../../../../../common/dist/index.mjs').Answer, string][]>;
        maxAttemptsPerView: import('vue').Ref<number>;
        maxSessionViews: import('vue').Ref<number>;
        submitAnswer: (answer: import('../../../../../common/dist/index.mjs').Answer, submittingClass?: string) => import('packages/db/dist').QuestionRecord;
        startTime: import('vue').Ref<moment.Moment>;
        hotKeys: import('vue').Ref<import('../../../../../common-ui/dist/common-ui.es.js').HotKey[]>;
        timeSpent: import('vue').ComputedRef<number>;
        logger: import('../../../../../common-ui/dist/common-ui.es.js').ViewableLogger;
        getURL: (item: string, dataShapeIndex?: number) => string;
        emitResponse: (record: import('packages/db/dist').CardRecord) => void;
    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
        data: ViewData[];
        modifyDifficulty: number;
    }> & Readonly<{}>, {
        modifyDifficulty: number;
    }, {}, {
        RadioMultipleChoice: any;
        MusicScoreRenderer: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
            abcString: {
                type: StringConstructor;
                required: true;
            };
        }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
            abcString: {
                type: StringConstructor;
                required: true;
            };
        }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
    }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>[];
    key: string;
    static getKey(value: number): string;
    constructor(data: ViewData[]);
    isCorrect(answer: RadioMultipleChoiceAnswer): boolean;
    dataShapes(): {
        name: DataShapeName;
        fields: {
            name: string;
            type: FieldType;
            validator: {
                test: (value: string) => {
                    msg: string;
                    status: Status;
                };
            };
        }[];
    }[];
    views(): import('vue').DefineComponent<{
        data: ViewData[];
        modifyDifficulty: number;
    }, {
        answer: import('vue').Ref<string, string>;
        question: import('vue').ComputedRef<IdentifyKeyQuestion | undefined>;
        choices: import('vue').ComputedRef<string[]>;
        submit: () => void;
        priorSessionViews: import('vue').Ref<number>;
        priorAttempts: import('vue').Ref<number>;
        priorAnswers: import('vue').Ref<[import('../../../../../common/dist/index.mjs').Answer, string][]>;
        maxAttemptsPerView: import('vue').Ref<number>;
        maxSessionViews: import('vue').Ref<number>;
        submitAnswer: (answer: import('../../../../../common/dist/index.mjs').Answer, submittingClass?: string) => import('packages/db/dist').QuestionRecord;
        startTime: import('vue').Ref<moment.Moment>;
        hotKeys: import('vue').Ref<import('../../../../../common-ui/dist/common-ui.es.js').HotKey[]>;
        timeSpent: import('vue').ComputedRef<number>;
        logger: import('../../../../../common-ui/dist/common-ui.es.js').ViewableLogger;
        getURL: (item: string, dataShapeIndex?: number) => string;
        emitResponse: (record: import('packages/db/dist').CardRecord) => void;
    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
        data: ViewData[];
        modifyDifficulty: number;
    }> & Readonly<{}>, {
        modifyDifficulty: number;
    }, {}, {
        RadioMultipleChoice: any;
        MusicScoreRenderer: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
            abcString: {
                type: StringConstructor;
                required: true;
            };
        }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
            abcString: {
                type: StringConstructor;
                required: true;
            };
        }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
    }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>[];
}
//# sourceMappingURL=index.d.ts.map