import { PropType } from 'vue';
import { SyllableSequence } from '../../utility/midi';
import { EchoQuestion } from '.';
import { default as moment } from 'moment';
import { ViewData } from '@vue-skuilder/common';
declare const _default: import('vue').DefineComponent<{
    data: ViewData[];
    modifyDifficulty: number;
}, {
    initialized: import('vue').Ref<boolean, boolean>;
    state: import('vue').Ref<string, string>;
    recording: import('vue').Ref<boolean, boolean>;
    inputSeq: import('vue').Ref<{
        syllables: {
            notes: {
                note: {
                    number: number;
                    name: string;
                    octave: number;
                };
                velocity: number;
                timestamp: number;
                type: "noteon" | "noteoff";
                isCorrect: boolean;
                isMissing: boolean;
            }[];
            isCorrect: boolean | undefined;
            readonly timestamp: number;
            grade: (answer: {
                notes: (import('../../utility/midi').NoteEvent & {
                    isCorrect: boolean;
                    isMissing: boolean;
                })[];
                isCorrect: boolean | undefined;
                get timestamp(): number;
                grade(answer: /*elided*/ any): /*elided*/ any;
            }) => {
                notes: (import('../../utility/midi').NoteEvent & {
                    isCorrect: boolean;
                    isMissing: boolean;
                })[];
                isCorrect: boolean | undefined;
                get timestamp(): number;
                grade(answer: /*elided*/ any): /*elided*/ any;
            };
        }[];
        rootNote: {
            number: number;
            name: string;
            octave: number;
        };
        append: (e: import('../../utility/midi').NoteEvent) => void;
        grade: (answer: SyllableSequence) => SyllableSequence;
        toString: () => string;
        isCorrect: () => boolean;
    }, SyllableSequence | {
        syllables: {
            notes: {
                note: {
                    number: number;
                    name: string;
                    octave: number;
                };
                velocity: number;
                timestamp: number;
                type: "noteon" | "noteoff";
                isCorrect: boolean;
                isMissing: boolean;
            }[];
            isCorrect: boolean | undefined;
            readonly timestamp: number;
            grade: (answer: {
                notes: (import('../../utility/midi').NoteEvent & {
                    isCorrect: boolean;
                    isMissing: boolean;
                })[];
                isCorrect: boolean | undefined;
                get timestamp(): number;
                grade(answer: /*elided*/ any): /*elided*/ any;
            }) => {
                notes: (import('../../utility/midi').NoteEvent & {
                    isCorrect: boolean;
                    isMissing: boolean;
                })[];
                isCorrect: boolean | undefined;
                get timestamp(): number;
                grade(answer: /*elided*/ any): /*elided*/ any;
            };
        }[];
        rootNote: {
            number: number;
            name: string;
            octave: number;
        };
        append: (e: import('../../utility/midi').NoteEvent) => void;
        grade: (answer: SyllableSequence) => SyllableSequence;
        toString: () => string;
        isCorrect: () => boolean;
    }>;
    lastTSsuggestion: import('vue').Ref<number, number>;
    gradedSeq: import('vue').Ref<{
        syllables: {
            notes: {
                note: {
                    number: number;
                    name: string;
                    octave: number;
                };
                velocity: number;
                timestamp: number;
                type: "noteon" | "noteoff";
                isCorrect: boolean;
                isMissing: boolean;
            }[];
            isCorrect: boolean | undefined;
            readonly timestamp: number;
            grade: (answer: {
                notes: (import('../../utility/midi').NoteEvent & {
                    isCorrect: boolean;
                    isMissing: boolean;
                })[];
                isCorrect: boolean | undefined;
                get timestamp(): number;
                grade(answer: /*elided*/ any): /*elided*/ any;
            }) => {
                notes: (import('../../utility/midi').NoteEvent & {
                    isCorrect: boolean;
                    isMissing: boolean;
                })[];
                isCorrect: boolean | undefined;
                get timestamp(): number;
                grade(answer: /*elided*/ any): /*elided*/ any;
            };
        }[];
        rootNote: {
            number: number;
            name: string;
            octave: number;
        };
        append: (e: import('../../utility/midi').NoteEvent) => void;
        grade: (answer: SyllableSequence) => SyllableSequence;
        toString: () => string;
        isCorrect: () => boolean;
    }, SyllableSequence | {
        syllables: {
            notes: {
                note: {
                    number: number;
                    name: string;
                    octave: number;
                };
                velocity: number;
                timestamp: number;
                type: "noteon" | "noteoff";
                isCorrect: boolean;
                isMissing: boolean;
            }[];
            isCorrect: boolean | undefined;
            readonly timestamp: number;
            grade: (answer: {
                notes: (import('../../utility/midi').NoteEvent & {
                    isCorrect: boolean;
                    isMissing: boolean;
                })[];
                isCorrect: boolean | undefined;
                get timestamp(): number;
                grade(answer: /*elided*/ any): /*elided*/ any;
            }) => {
                notes: (import('../../utility/midi').NoteEvent & {
                    isCorrect: boolean;
                    isMissing: boolean;
                })[];
                isCorrect: boolean | undefined;
                get timestamp(): number;
                grade(answer: /*elided*/ any): /*elided*/ any;
            };
        }[];
        rootNote: {
            number: number;
            name: string;
            octave: number;
        };
        append: (e: import('../../utility/midi').NoteEvent) => void;
        grade: (answer: SyllableSequence) => SyllableSequence;
        toString: () => string;
        isCorrect: () => boolean;
    }>;
    graded: import('vue').Ref<boolean, boolean>;
    promptText: import('vue').ComputedRef<"Lowest note of first chord:" | "First note:">;
    firstNoteChroma: import('vue').ComputedRef<number>;
    progressBar: import('vue').Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
    inputVisRef: import('vue').Ref<import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
        seq: {
            type: PropType<SyllableSequence>;
            required: true;
        };
        lastTSsuggestion: {
            type: NumberConstructor;
            required: false;
            default: number;
        };
    }>> & Readonly<{}>, {
        firstTS: import('vue').Ref<number, number>;
        lastTS: import('vue').Ref<number, number>;
        high: import('vue').Ref<number, number>;
        low: import('vue').Ref<number, number>;
        sayNote: (note: import('../../utility/midi').NoteEvent) => void;
        getLastTS: import('vue').ComputedRef<number>;
        getHeight: import('vue').ComputedRef<number>;
        updateBounds: () => void;
    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
        lastTSsuggestion: number;
    }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import('vue').ExtractPropTypes<{
        seq: {
            type: PropType<SyllableSequence>;
            required: true;
        };
        lastTSsuggestion: {
            type: NumberConstructor;
            required: false;
            default: number;
        };
    }>> & Readonly<{}>, {
        firstTS: import('vue').Ref<number, number>;
        lastTS: import('vue').Ref<number, number>;
        high: import('vue').Ref<number, number>;
        low: import('vue').Ref<number, number>;
        sayNote: (note: import('../../utility/midi').NoteEvent) => void;
        getLastTS: import('vue').ComputedRef<number>;
        getHeight: import('vue').ComputedRef<number>;
        updateBounds: () => void;
    }, {}, {}, {}, {
        lastTSsuggestion: number;
    }> | undefined, import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
        seq: {
            type: PropType<SyllableSequence>;
            required: true;
        };
        lastTSsuggestion: {
            type: NumberConstructor;
            required: false;
            default: number;
        };
    }>> & Readonly<{}>, {
        firstTS: import('vue').Ref<number, number>;
        lastTS: import('vue').Ref<number, number>;
        high: import('vue').Ref<number, number>;
        low: import('vue').Ref<number, number>;
        sayNote: (note: import('../../utility/midi').NoteEvent) => void;
        getLastTS: import('vue').ComputedRef<number>;
        getHeight: import('vue').ComputedRef<number>;
        updateBounds: () => void;
    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {
        lastTSsuggestion: number;
    }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import('vue').ExtractPropTypes<{
        seq: {
            type: PropType<SyllableSequence>;
            required: true;
        };
        lastTSsuggestion: {
            type: NumberConstructor;
            required: false;
            default: number;
        };
    }>> & Readonly<{}>, {
        firstTS: import('vue').Ref<number, number>;
        lastTS: import('vue').Ref<number, number>;
        high: import('vue').Ref<number, number>;
        low: import('vue').Ref<number, number>;
        sayNote: (note: import('../../utility/midi').NoteEvent) => void;
        getLastTS: import('vue').ComputedRef<number>;
        getHeight: import('vue').ComputedRef<number>;
        updateBounds: () => void;
    }, {}, {}, {}, {
        lastTSsuggestion: number;
    }> | undefined>;
    clearAttempt: () => void;
    notesOn: import('vue').Ref<number, number>;
    priorSessionViews: import('vue').Ref<number>;
    priorAttempts: import('vue').Ref<number>;
    priorAnswers: import('vue').Ref<[Answer, string][]>;
    maxAttemptsPerView: import('vue').Ref<number>;
    maxSessionViews: import('vue').Ref<number>;
    question: import('vue').Ref<EchoQuestion | undefined, EchoQuestion | undefined>;
    submitAnswer: (answer: Answer, submittingClass?: string, opts?: import('@vue-skuilder/common-ui').SubmitAnswerOpts) => QuestionRecord;
    startTime: import('vue').Ref<moment.Moment>;
    hotKeys: import('vue').Ref<import('@vue-skuilder/common-ui').HotKey[]>;
    timeSpent: import('vue').ComputedRef<number>;
    logger: import('@vue-skuilder/common-ui').ViewableLogger;
    getURL: (item: string, dataShapeIndex?: number) => string;
    emitResponse: (record: CardRecord) => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
    data: ViewData[];
    modifyDifficulty: number;
}> & Readonly<{}>, {
    modifyDifficulty: number;
}, {}, {
    SyllableSeqVis: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
        seq: {
            type: PropType<SyllableSequence>;
            required: true;
        };
        lastTSsuggestion: {
            type: NumberConstructor;
            required: false;
            default: number;
        };
    }>, {
        firstTS: import('vue').Ref<number, number>;
        lastTS: import('vue').Ref<number, number>;
        high: import('vue').Ref<number, number>;
        low: import('vue').Ref<number, number>;
        sayNote: (note: import('../../utility/midi').NoteEvent) => void;
        getLastTS: import('vue').ComputedRef<number>;
        getHeight: import('vue').ComputedRef<number>;
        updateBounds: () => void;
    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
        seq: {
            type: PropType<SyllableSequence>;
            required: true;
        };
        lastTSsuggestion: {
            type: NumberConstructor;
            required: false;
            default: number;
        };
    }>> & Readonly<{}>, {
        lastTSsuggestion: number;
    }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
    NoteDisplay: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
        chroma: {
            type: NumberConstructor;
            required: true;
        };
    }>, {
        style: (n: number) => {
            fill: string;
            'fill-opacity': number;
            stroke: string;
            'stroke-width': number;
            'stroke-miterlimit': number;
            'stroke-dasharray': string;
            'stroke-opacity': number;
        };
        white: number;
        black: number;
    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
        chroma: {
            type: NumberConstructor;
            required: true;
        };
    }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export default _default;
//# sourceMappingURL=Playback.vue.d.ts.map