import { CFamilyGroups_GetFamilyGroupForUser_Response, CStoreBrowse_GetItems_Request, PartialMessage, CFamilyGroups_GetPlaytimeSummary_Response, CFamilyGroups_GetSharedLibraryApps_Response, CPlayer_GetPlayerLinkDetails_Response, CStoreBrowse_GetItems_Response } from 'node-steam-family-group-api';
import { APIResp, WishItem } from './types';
import { GameBaseInfoResp } from '../../interface';
export interface ProxiedAPIResponse<T> {
    ok: boolean;
    status: number;
    message: string;
    data: null | T;
}
export * from './types';
export interface IAPIService {
    Steam: ISteamFamilyAPI;
}
export declare abstract class ISteamFamilyAPI {
    token?: string;
    steamId?: bigint;
    abstract getSteamFamilyGroup(token?: string, steamId?: bigint): Promise<ProxiedAPIResponse<CFamilyGroups_GetFamilyGroupForUser_Response>>;
    abstract getPlaytimeSummary(familyGroupid: bigint, token?: string): Promise<ProxiedAPIResponse<CFamilyGroups_GetPlaytimeSummary_Response>>;
    abstract getSteamFamilyGroupLibs(familyId: bigint, token?: string): Promise<ProxiedAPIResponse<CFamilyGroups_GetSharedLibraryApps_Response>>;
    abstract getFamilyMembers(memberIds: string[], token?: string): Promise<ProxiedAPIResponse<CPlayer_GetPlayerLinkDetails_Response>>;
    abstract getSteamItems(appIds: string[], params?: PartialMessage<CStoreBrowse_GetItems_Request>): Promise<ProxiedAPIResponse<CStoreBrowse_GetItems_Response>>;
    abstract getSteamItemsBaseInfo(appIds: number[]): Promise<ProxiedAPIResponse<GameBaseInfoResp>>;
    getSteamWishesByPage: (id: string, page: number) => Promise<any>;
    retry: <T>(func: () => T, times?: number) => Promise<any>;
    getOnePlayersSteamWishes: (id: string) => Promise<{
        wisher: string;
        item: any;
        appId: string;
    }[]>;
    getSteamWishesByPlayerIds(playerIds: string[]): Promise<APIResp<WishItem[]>>;
}
declare enum ReqResultStatus {
    Success = 0,
    NotMatch = 1,
    NetworkError = 2
}
export declare class NetReqResult<T> {
    data?: T | null;
    private status;
    msg: string;
    static failed<T>(reason: string): NetReqResult<T>;
    static success<T>(data: T): NetReqResult<T>;
    constructor(data: T, status: ReqResultStatus, message: string);
    successOr(data: T): T;
    isSuccess(): boolean;
    isNetworkError(): boolean;
    isNotMatch(): boolean;
}
