import { Subject } from 'rxjs';
export interface IInfoOptions {
    StorageKey: string;
}
export declare class InfoController<T = any> {
    private options;
    constructor(options?: IInfoOptions);
    /**
    * 持久化初始化完成 Subject
    * @type {Promise<any>}
    * @memberof ControllerUser
    */
    protected readonly HydrateSubject: Subject<Boolean>;
    /**
    * 持久化初始化完成 Promise
    * @type {Promise<any>}
    * @memberof ControllerUser
    */
    get HydrateAsync(): Promise<this>;
    /**
    * 异步 HydrateSubject 已经完成
    * @readonly
    * @memberof PortalAuthController
    */
    get HydrateisStopped(): boolean;
    get StorageKey(): string;
    /**
     * 数据存储对象
     * @protected
     * @type {T}
     * @memberof InfoController
     */
    protected _value: T;
    /**
     * 最后一次更新 值 HydrateisStopped 未完成前 存储 用于对比变化
     * @protected
     * @memberof AuthController
     */
    protected lastValue: any;
    /**
     * 外部可访问对象
     * @readonly
     * @type {T}
     * @memberof InfoController
     */
    get value(): T;
    /**
     * 保存 Token
     * @param _AccessToken
     * @returns
     */
    onSave(value: T): void;
    /**
     * 清理所有的登录信息
     * @return {*}
     * @memberof AuthController
     */
    onClear(): void;
    /**
   * 创建持久化存储
   * @memberof BaseModel
   */
    protected createHydrate(): Promise<void>;
}
