/**
 * ジョブキュー管理とワーカー
 */
import type { GoogleAuth } from 'google-auth-library';
import type { JobDatabase } from './database.js';
import type { ImageResourceManager } from './resources.js';
import type { Job, JobType } from '../types/job.js';
export declare class JobManager {
    private db;
    private auth;
    private resourceManager;
    private maxConcurrentJobs;
    private runningJobs;
    private cancelledJobs;
    private cleanupInterval;
    private processingLock;
    constructor(db: JobDatabase, auth: GoogleAuth, resourceManager: ImageResourceManager, maxConcurrentJobs?: number);
    /**
     * 新しいジョブを作成
     */
    createJob(type: JobType, params: Record<string, any>): string;
    /**
     * ジョブを取得
     */
    getJob(jobId: string): Job | null;
    /**
     * ジョブ一覧を取得
     */
    listJobs(status?: 'pending' | 'running' | 'completed' | 'failed', limit?: number): Job[];
    /**
     * ジョブをキャンセル
     */
    cancelJob(jobId: string): boolean;
    /**
     * 未完了のジョブを再開
     */
    private resumePendingJobs;
    /**
     * ジョブキューを処理
     *
     * Race condition防止のため、ロック機構を使用して並行実行を防止
     */
    private processJobs;
    /**
     * ジョブを実行
     *
     * 注意: processJobs()内で既にrunningJobsへの追加とステータス更新が完了しているため、
     * このメソッドではそれらの処理は行わない
     */
    private executeJob;
    /**
     * cancelledJobsをクリーンアップ（メモリリーク防止）
     * 完了済みの古いジョブをSetから削除
     */
    private cleanupCancelledJobs;
    /**
     * JobManagerを破棄（クリーンアップインターバルを停止）
     */
    destroy(): void;
    /**
     * ツール実行結果からジョブ結果を抽出
     */
    private extractJobResult;
}
//# sourceMappingURL=jobManager.d.ts.map