import { Database, Tables } from 'koishi';
import { SteamAccount, ISteamAccountDAO, ChannelInfo, SteamAccountWithFamilyId, SteamRelateChannelInfo } from '../../interface';
export declare class SteamAccountDAO<T> implements ISteamAccountDAO<T> {
    db: Database<Tables>;
    constructor(db: Database<Tables>);
    getSteamAccountBySessionUid(uid: string): Promise<SteamAccountWithFamilyId & {
        channel: SteamRelateChannelInfo<T>;
    }>;
    getSteamAccountBySteamId(steamid: string): Promise<SteamAccountWithFamilyId>;
    upsertSteamAccount(account: Partial<SteamAccount>, channelInfo: ChannelInfo): Promise<void>;
    getSteamAccountBySteamIdAndSessionId(steamid: string, uid: string): Promise<SteamAccountWithFamilyId>;
    updateSteamAccountToken(accountId: number, account: Partial<SteamAccount>): Promise<void>;
    invalidAccount(id: number): Promise<void>;
    getAuthedSteamAccountByFamilyId(familyId: string): Promise<SteamAccountWithFamilyId>;
    removeUnAuthAccount(accountId: number): Promise<void>;
    getAllSteamAccount(): Promise<SteamAccount[]>;
}
