import { Observable } from 'rxjs';
import { BixiConfigService } from '../auth.config.service';
import { BixiAuthConfig } from '../config.type';
import { IStore } from '../store/interface';
import { AuthReferrer, ITokenModel, ITokenService } from './interface';
/**
 * 维护Token信息服务，[在线文档](https://bixi.datagrand.com/auth)
 */
export declare class TokenService implements ITokenService {
    private store;
    private change$;
    private _referrer;
    private _options;
    constructor(configSrv: BixiConfigService, store: IStore);
    /**
     * 授权失败后跳转路由路径（支持外部链接地址）
     */
    get login_url(): string | undefined;
    /**
     * 当前请求页面的来源页面的地址
     */
    get referrer(): AuthReferrer;
    get options(): BixiAuthConfig;
    /**
     * 设置 Token 信息，当用户 Token 发生变动时都需要调用此方法重新刷新
     */
    set(data: ITokenModel): boolean;
    /**
     * 获取 Token 信息，例如：
     * ```
     * // 返回 `any` 类型 Token 对象
     * const token = tokenService.get();
     * // 获取 JWT 类型的 Token 对象
     * const token = tokenService.get<JWTTokenModel>(JWTTokenModel);
     * // 获取 Simple 类型的 Token 对象
     * const token = tokenService.get<SimpleTokenModel>(SimpleTokenModel);
     * ```
     */
    get(type?: any): any;
    /**
     * 清除 Token 信息，当用户退出登录时调用。
     * ```
     * // 清除所有 Token 信息
     * tokenService.clear();
     * // 只清除 token 字段
     * tokenService.clear({ onlyToken: true });
     * ```
     */
    clear(options?: {
        onlyToken: boolean;
    }): void;
    /**
     * 订阅 Token 对象变更通知
     */
    change(): Observable<ITokenModel | null>;
}
export declare function BIXI_SERVICE_TOKEN_FACTORY(): ITokenService;
