import { BlockingEventManager } from '@oinone/kunlun-shared';
import { UserTablePrefer } from '../../../typing';
declare enum EventKeys {
    reload = "reload",
    save = "save"
}
declare type ReloadEventHandler = (userPrefer: UserTablePrefer) => void;
declare type SaveEventHandler = ReloadEventHandler;
export declare class UserPreferEventManager extends BlockingEventManager<typeof EventKeys> {
    private static INSTANCES;
    private readonly key;
    private data;
    private constructor();
    static get(key: string): UserPreferEventManager;
    static getNullable(key: string): UserPreferEventManager | undefined;
    setData(data: UserTablePrefer | undefined): void;
    getData(): UserTablePrefer | undefined;
    reload(userPrefer: Partial<UserTablePrefer>): Promise<void>;
    onReload(fn: ReloadEventHandler, priority?: number): void;
    clearOnReload(fn: ReloadEventHandler): void;
    save(userPrefer: Partial<UserTablePrefer>): Promise<void>;
    onSave(fn: SaveEventHandler): void;
    clearOnSave(fn: SaveEventHandler): void;
    dispose(): boolean;
}
export {};
