import type { AgentTaskDto, CreateAgentTaskDto, UpdateAgentTaskDto } from '@n8n/api-types';
import { Logger } from '@n8n/backend-common';
import { GlobalConfig } from '@n8n/config';
import { ProjectRelationRepository } from '@n8n/db';
import { InstanceSettings } from 'n8n-core';
import type { PubSubCommandMap } from '../../scaling/pubsub/pubsub.event-map';
import { Publisher } from '../../scaling/pubsub/publisher.service';
import { AgentsService } from './agents.service';
import { AgentRepository } from './repositories/agent.repository';
import { AgentTaskRunLockRepository } from './repositories/agent-task-run-lock.repository';
import { AgentTaskSnapshotRepository } from './repositories/agent-task-snapshot.repository';
import { AgentTaskRepository } from './repositories/agent-task.repository';
export declare class AgentTaskService {
    private readonly logger;
    private readonly globalConfig;
    private readonly taskRepository;
    private readonly taskSnapshotRepository;
    private readonly taskRunLockRepository;
    private readonly agentRepository;
    private readonly projectRelationRepository;
    private readonly agentsService;
    private readonly instanceSettings;
    private readonly publisher;
    private readonly jobs;
    constructor(logger: Logger, globalConfig: GlobalConfig, taskRepository: AgentTaskRepository, taskSnapshotRepository: AgentTaskSnapshotRepository, taskRunLockRepository: AgentTaskRunLockRepository, agentRepository: AgentRepository, projectRelationRepository: ProjectRelationRepository, agentsService: AgentsService, instanceSettings: InstanceSettings, publisher: Publisher);
    list(agentId: string): Promise<AgentTaskDto[]>;
    create(agentId: string, dto: CreateAgentTaskDto): Promise<AgentTaskDto>;
    update(agentId: string, taskId: string, dto: UpdateAgentTaskDto): Promise<AgentTaskDto>;
    delete(agentId: string, taskId: string): Promise<void>;
    private attachTaskRef;
    requestReconcile(agentId: string): Promise<void>;
    registerEnabledForAgent(agentId: string): Promise<void>;
    handleTasksChanged(payload: PubSubCommandMap['agent-tasks-changed']): Promise<void>;
    private broadcastTasksChanged;
    deregisterAgentTasks(agentId: string): void;
    reconnectAll(): Promise<void>;
    stopAll(): void;
    private reconcileAgent;
    private registerOrRefresh;
    private deregister;
    private runScheduledTask;
    private startTaskRunLockRenewal;
    private runTask;
    private buildTaskRunMessage;
    private consumeTaskRun;
    runNow(agentId: string, taskId: string, userId: string): Promise<void>;
    private executeNow;
    private resolveExecutionUserId;
    private getOrThrow;
    private assertValidCron;
    private toDto;
}
