/**
 * Task polling utilities for async operations
 */
import { MJApiClient, TaskResponse } from "./api-client.js";
export interface PollOptions {
    maxAttempts?: number;
    intervalMs?: number;
    timeoutMs?: number;
}
export declare class TaskPoller {
    private client;
    constructor(client: MJApiClient);
    /**
     * Poll a task until completion or timeout
     */
    pollTask(taskId: string, options?: PollOptions): Promise<TaskResponse>;
    /**
     * Get task status without polling
     */
    getTaskStatus(taskId: string): Promise<TaskResponse>;
    /**
     * Check if task is completed
     */
    isTaskCompleted(task: TaskResponse): boolean;
    /**
     * Check if task is successful
     */
    isTaskSuccessful(task: TaskResponse): boolean;
    /**
     * Check if task failed
     */
    isTaskFailed(task: TaskResponse): boolean;
    /**
     * Get task progress percentage
     */
    getTaskProgress(task: TaskResponse): number;
    /**
     * Format task status for display
     */
    formatTaskStatus(task: TaskResponse): string;
    /**
     * Check if task appears to be stuck
     */
    isTaskStuck(task: TaskResponse): boolean;
    /**
     * Sleep for specified milliseconds
     */
    private sleep;
}
//# sourceMappingURL=task-poller.d.ts.map