import { Store } from 'redux';
import { ExamAnswer, ExamServerAPI, InitialCasStatus, RestrictedAudioPlaybackStats } from '..';
import { RootElement } from '../parser/parseExamStructure';
declare const rootReducer: import("redux").Reducer<{
    answers: import("./answers/reducer").AnswersState;
    audio: import("./audio/reducer").AudioState;
    cas: import("./cas/reducer").CasState;
}, {
    type: "SAVE_ANSWER";
    payload: ExamAnswer;
} | {
    type: "SAVE_ANSWER_SUCCEEDED";
    payload: ExamAnswer;
} | {
    type: "SAVE_ANSWER_FAILED";
    payload: {
        answer: ExamAnswer;
        error: unknown;
    };
    error: boolean;
} | {
    type: "SELECT_ANSWER_VERSION";
    payload: {
        questionId: number;
        questionText: string;
    };
} | {
    type: "ANSWER_FOCUSED";
    payload: number;
} | {
    type: "ANSWER_BLURRED";
    payload: number;
} | {
    type: "PLAY_AUDIO";
    payload: import("./audio/reducer").Audio;
} | {
    type: "PLAY_AUDIO_STARTED";
    payload: import("./audio/reducer").Audio;
} | {
    type: "PLAY_AUDIO_FINISHED";
} | {
    type: "SHOW_AUDIO_ERROR";
    payload: {
        audio: import("./audio/reducer").Audio;
        error: import("..").AudioError;
    };
} | {
    type: "HIDE_AUDIO_ERROR";
    payload: import("./audio/reducer").Audio;
} | {
    type: "UPDATE_REMAINING";
    payload: number;
} | {
    type: "ALLOW_CAS";
    payload: number;
} | {
    type: "ALLOW_CAS_COUNTDOWN";
    payload: number;
} | {
    type: "ALLOW_CAS_SUCCEEDED";
} | {
    type: "ALLOW_CAS_CANCELLED";
} | {
    type: "UPDATE_CAS_REMAINING";
    payload: number;
}, Partial<{
    answers: never;
    audio: never;
    cas: never;
}>>;
export type AppState = ReturnType<typeof rootReducer>;
declare module 'react-redux' {
    type DefaultRootState = AppState;
}
export declare function initializeExamStore(examStructure: RootElement, casStatus: InitialCasStatus, initialAnswers: ExamAnswer[], restrictedAudioPlaybackStats: RestrictedAudioPlaybackStats[], examServerApi: ExamServerAPI): Store<AppState>;
export {};
//# sourceMappingURL=index.d.ts.map