import type { TaskState, TaskType } from '../../app/common/enum/Task.ts';
import { Task as TaskEntity, type TaskUpdateCondition } from '../core/entity/Task.ts';
import { AbstractRepository } from './AbstractRepository.ts';
export declare class TaskRepository extends AbstractRepository {
    private readonly Task;
    private readonly HistoryTask;
    saveTask(task: TaskEntity): Promise<void>;
    idempotentSaveTask(task: TaskEntity, condition: TaskUpdateCondition): Promise<boolean>;
    saveTaskToHistory(task: TaskEntity): Promise<void>;
    updateSpecificVersionsOfWaitingTask(task: TaskEntity, specificVersions?: string[]): Promise<void>;
    findTask(taskId: string): Promise<TaskEntity<import("../core/entity/Task.ts").TaskBaseData> | null>;
    findTaskByBizId(bizId: string): Promise<TaskEntity<import("../core/entity/Task.ts").TaskBaseData> | null>;
    findTasks(taskIds: string[]): Promise<TaskEntity[]>;
    findTasksByCondition(where: {
        targetName?: string;
        state?: TaskState;
        type: TaskType;
    }): Promise<TaskEntity[]>;
    findTaskByTargetName(targetName: string, type: TaskType, state?: TaskState): Promise<TaskEntity<import("../core/entity/Task.ts").TaskBaseData> | null>;
    findTimeoutTasks(taskState: TaskState, timeout: number): Promise<TaskEntity<import("../core/entity/Task.ts").TaskBaseData>[]>;
    findTaskByAuthorIpAndType(authorIp: string, type: TaskType): Promise<TaskEntity<import("../core/entity/Task.ts").TaskBaseData>[]>;
}
