import { PayloadAction } from '@reduxjs/toolkit';
import { InitialAchievementMetrics, AchievementMetrics, SerializedAchievementConfiguration } from '../types';
export interface AchievementState {
    config: SerializedAchievementConfiguration;
    metrics: AchievementMetrics;
    unlockedAchievements: string[];
    previouslyAwardedAchievements: string[];
    storageKey: string | null;
}
export declare const achievementSlice: import("@reduxjs/toolkit").Slice<AchievementState, {
    initialize: (state: import("immer/dist/internal").WritableDraft<AchievementState>, action: PayloadAction<{
        config: SerializedAchievementConfiguration;
        initialState?: InitialAchievementMetrics & {
            previouslyAwardedAchievements?: string[];
        };
        storageKey: string;
    }>) => void;
    setMetrics: (state: import("immer/dist/internal").WritableDraft<AchievementState>, action: PayloadAction<AchievementMetrics>) => void;
    unlockAchievement: (state: import("immer/dist/internal").WritableDraft<AchievementState>, action: PayloadAction<string>) => void;
    markAchievementAsAwarded: (state: import("immer/dist/internal").WritableDraft<AchievementState>, action: PayloadAction<string>) => void;
    resetAchievements: (state: import("immer/dist/internal").WritableDraft<AchievementState>) => void;
}, "achievements">;
export declare const initialize: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    config: SerializedAchievementConfiguration;
    initialState?: InitialAchievementMetrics & {
        previouslyAwardedAchievements?: string[];
    };
    storageKey: string;
}, "achievements/initialize">, setMetrics: import("@reduxjs/toolkit").ActionCreatorWithPayload<AchievementMetrics, "achievements/setMetrics">, unlockAchievement: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "achievements/unlockAchievement">, resetAchievements: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"achievements/resetAchievements">, markAchievementAsAwarded: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "achievements/markAchievementAsAwarded">;
declare const _default: import("@reduxjs/toolkit").Reducer<AchievementState>;
export default _default;
