import { FamilyLib, GameInfo, ISteamFamilySharedLibDAO, PartialBy, SteamFamilyLib } from '../../interface';
import { Database, Tables } from 'koishi';
export declare class SteamFamilyLibDAO implements ISteamFamilySharedLibDAO {
    private db;
    constructor(db: Database<Tables>);
    getSteamFamilyLibByFamilyId(familyId: string, type?: 'lib' | 'wish'): Promise<(SteamFamilyLib & {
        info: GameInfo;
    })[]>;
    batchUpsertLibInfo(infos: PartialBy<GameInfo, 'aliases' | 'top20Tags'>[]): Promise<void>;
    getUnSyncedLib(limit?: number): Promise<SteamFamilyLib[]>;
    getLibByKeywordAndFamilyId(familyId: string, queryKey: string): Promise<FamilyLib[]>;
    getFamilyWishes(familyId: string): Promise<SteamFamilyLib[]>;
    batchRemoveByAppIdAndFamilyId(steamFamilyId: string, appIds: number[], type?: 'lib' | 'wish'): Promise<void>;
    batchUpsertFamilyLib(libs: Partial<SteamFamilyLib>[]): Promise<void>;
    refreshLibByFamilyId(familyId: string, dbContent: SteamFamilyLib[], withWishes?: boolean): Promise<void>;
}
