import { IKeyValueRepository } from '../../../storage/repository/key-value.js';
import { ServiceOptions, BaseService } from '../../../storage/service/base.js';
import { tl } from '../../../tl/index.js';
export interface CurrentUserInfo {
    userId: number;
    isBot: boolean;
    isPremium: boolean;
    usernames: string[];
}
export declare class CurrentUserService extends BaseService {
    private _kv;
    constructor(_kv: IKeyValueRepository, opts: ServiceOptions);
    private _cached?;
    store(info: CurrentUserInfo | null): Promise<void>;
    storeFrom(user: tl.TypeUser): Promise<CurrentUserInfo>;
    fetch(): Promise<CurrentUserInfo | null>;
    getCached(safe?: boolean): CurrentUserInfo | null;
    update(params: {
        username?: string;
        usernames?: string[];
        isPremium?: boolean;
    }): Promise<void>;
}
