import { Client } from '../client.js'; export interface AchievementSummary { achievement_id: number; stat_id: number; internal_name: string; display_name: string; description: string; icon: string | null; icon_gray: string | null; hidden: boolean; smart_skip_warning: 'playtime_gated' | null; unlocked: boolean; } export interface StatSummary { stat_id: number; name: string; display_name: string; current_value: number; default_value: number; max_change: number | null; increment_only: boolean; server_only: boolean; editable: boolean; } export interface AchievementSession { id: number; username: string; steam_account_id: string; steam_username: string; appid: number; type: 'achievement' | 'stat'; achievement_id: number | null; stat_id: number; internal_name: string; display_name: string; stat_value: string | null; pace: 'instant' | 'realistic' | 'custom'; custom_interval_sec: number | null; scheduledAt: string | null; status: 'QUEUED' | 'running' | 'done' | 'failed' | 'canceled'; error: string | null; retry_count: number; createdAt: string; updatedAt: string; completedAt: string | null; } export interface AchievementListResponse { achievements: AchievementSummary[]; } export interface StatsListResponse { stats: StatSummary[]; } export interface AchievementQueueParams { steamUsername: string; appid: number; achievements: Array<{ achievement_id: number; stat_id: number; internal_name?: string; display_name?: string; }>; pace?: 'instant' | 'realistic' | 'custom'; customIntervalSec?: number; } export interface AchievementQueueResponse { session_ids: number[]; queued: number; pace: string; } export interface AchievementListParams { steamUsername?: string; status?: 'QUEUED' | 'running' | 'done' | 'failed' | 'canceled'; includeCanceled?: boolean; page?: number; limit?: number; } export interface AchievementListPaginatedResponse { items: AchievementSession[]; total: number; page: number; per_page: number; counts: { QUEUED: number; running: number; done: number; failed: number; canceled: number; }; } export interface OwnedGame { appid: number; name: string; playtime_forever: number; img_icon_url: string | null; } export interface OwnedGamesResponse { game_count: number; games: OwnedGame[]; } export interface StatSetParams { steamUsername: string; appid: number; stats: Array<{ stat_id: number; value: number; name?: string; display_name?: string; }>; pace?: 'instant' | 'realistic' | 'custom'; } export class AchievementsStatsResource { constructor(client: Client); list(params: { steamUsername: string; appid: number }): Promise; set(params: StatSetParams): Promise; } export class AchievementsResource { constructor(client: Client); stats: AchievementsStatsResource; listAchievements(params: { steamUsername: string; appid: number }): Promise; queue(params: AchievementQueueParams): Promise; list(params?: AchievementListParams): Promise; get(sessionId: number): Promise; cancel(sessionId: number): Promise<{ success: boolean; data: { canceled: number } }>; cancelAll(params: { steamUsername: string }): Promise<{ canceled: number }>; retry(sessionId: number): Promise<{ id: number }>; ownedGames(params: { steamUsername: string }): Promise; }