import type { AxiosInstance } from "axios"; export interface ProxyOptions { host: string; port: number; auth?: { username: string; password: string; }; type?: "http" | "socks5"; } export interface DiscordQuestsOptions { proxy?: string | ProxyOptions; proxyType?: "http" | "socks5"; } export interface QuestTask { id: string; target: number; current: number; percent: number; completed: boolean; enrolled: boolean; type: "duration" | "count"; eventName?: string; } export interface QuestReward { type: number; sku_id: string; asset: string; orb_quantity?: number; asset_video: string | null; messages: { name: string; name_with_article: string; }; expires_at: string; expiration_mode: number; } export interface QuestApplication { id: string; name: string; link: string; } export interface QuestInfo { id: string; name: string; application: QuestApplication; tasks: QuestTask[]; rewards: QuestReward[]; enrolled: boolean; completed: boolean; expiresAt: Date | null; startsAt: string; raw: RawQuest; } export interface RawQuest { id: string; config: { id: string; starts_at: string; expires_at: string; features: number[]; application: QuestApplication; assets: Record; colors: { primary: string; secondary: string; }; messages: { quest_name: string; game_title: string; game_publisher: string; }; task_config?: { tasks: Record; }; task_config_v2?: { tasks: Record; }; rewards_config: { rewards: QuestReward[]; }; }; user_status: { user_id: string; quest_id: string; enrolled_at: string | null; completed_at: string | null; progress: Record; }; } export interface ProgressEvent { questId: string; taskId: string; current: number; target: number; percent: number; } export interface SolverOptions { onProgress?: (event: ProgressEvent) => void; onCompleted?: (questId: string) => void; onError?: (questId: string, error: Error) => void; onLog?: (message: string) => void; } export interface EnrollResult { success: boolean; alreadyEnrolled: boolean; quest: QuestInfo; } export interface SolveResult { questId: string; questName: string; status: "completed" | "already_completed" | "enroll_failed" | "unsupported" | "error"; error?: string; } export interface SolverConstructorArgs { api: AxiosInstance; questId: string; taskId: string; current: number; target: number; userId: string; task: QuestTask; quest: QuestInfo; } export interface SolverInstance { start(options?: SolverOptions): Promise; stop(): void; } export type SolverConstructor = new (args: SolverConstructorArgs) => SolverInstance; export declare const DURATION_TASK_IDS: string[]; //# sourceMappingURL=types.d.ts.map