import { Client } from '../client.js'; /** Comment style categories */ export type CommentCategory = 'default' | 'rep' | 'sign' | 'artwork' | 'cheater'; export interface CommentCreateParams { /** Steam ID, profile URL, vanity URL, or sharedfile/artwork URL */ steamId: string; /** Number of comments (1-50) */ amount: number; /** Comment style categories — pools are merged when multiple are selected */ categories?: CommentCategory[]; } export interface CommentSession { session_id: number; steamID64: string; requested: number; success: number; failed: number; status: 'QUEUED' | 'running' | 'done' | 'canceled' | 'crashed' | 'stuck'; daily_used: number; credits_used: number; daily_refunded: number; credits_refunded: number; artworkId: string | null; categories: CommentCategory[] | null; createdAt: string; updatedAt: string; } export interface CommentListParams { /** Max results (1-100, default: 20) */ limit?: number; } /** * Comment bot operations — supports both profile and artwork/sharedfile comments */ export class CommentResource { constructor(client: Client); /** * Queue a comment session * * @example * // Profile comment * await client.comment.create({ steamId: '76561198123456789', amount: 5 }); * * // Artwork comment (just paste the sharedfile URL) * await client.comment.create({ * steamId: 'https://steamcommunity.com/sharedfiles/filedetails/?id=3456789012', * amount: 10 * }); */ create(params: CommentCreateParams): Promise; /** * Get comment session status */ get(sessionId: number): Promise; /** * List comment sessions */ list(params?: CommentListParams): Promise; /** * Cancel a comment session (remaining comments are refunded) */ cancel(sessionId: number): Promise<{ success: boolean; message?: string }>; }