import { IDBService, SteamAccount, SteamAccountWithFamilyId } from '../db/interface';
import { IAPIService, Result } from '../interface';
import { LoginSession } from 'steam-session';
export declare abstract class ISteamService<T> {
    db: IDBService<T>;
    api: IAPIService;
    protected constructor(db: IDBService<T>, api: IAPIService);
    validAccount(account: SteamAccount): Promise<boolean>;
    abstract createAPIWithCurAccount(account: SteamAccount): Promise<Result<IAPIService>>;
    renewAccountToken(account: SteamAccount): Promise<SteamAccount>;
    addAccountInfoByLoginSession(loginSession: LoginSession, channelInfo: T): Promise<void>;
    refreshFamilyLibByAccount(steamAccount: SteamAccountWithFamilyId, withWishes: boolean): Promise<{
        wishSize: number;
        libSize: number;
        familyId: string;
    }>;
    subscribeFamilyLibByAccount(account: SteamAccountWithFamilyId, channelInfo: T, preferGameImgType: string, subLib: boolean, subWish?: boolean): Promise<{
        wishSize: number;
        libSize: number;
        familyName: string;
    }>;
    getLibStatistic(token: string): Promise<{
        familyInfo: import("node-steam-family-group-api").CFamilyGroups_GetFamilyGroupForUser_Response;
        members: import("node-steam-family-group-api").CPlayer_GetPlayerLinkDetails_Response;
        games: import("../db/interface").FamilyLib[];
        playtimeSummary: import("node-steam-family-group-api").CFamilyGroups_GetPlaytimeSummary_Response;
        recentAppDetail: import("node-steam-family-group-api").CStoreBrowse_GetItems_Response;
    }>;
}
