import { DataSource, Repository } from '@n8n/typeorm';
import { AgentExecution } from '../entities/agent-execution.entity';
export type RunningAgentExecution = Pick<AgentExecution, 'id' | 'threadId' | 'startedAt' | 'updatedAt' | 'timeline'>;
type AgentExecutionFinalizationValues = Pick<AgentExecution, 'status' | 'stoppedAt' | 'duration' | 'timeline' | 'storedAt' | 'error'> & Partial<Pick<AgentExecution, 'model' | 'promptTokens' | 'completionTokens' | 'totalTokens' | 'cost' | 'hitlStatus'>>;
export declare class AgentExecutionRepository extends Repository<AgentExecution> {
    constructor(dataSource: DataSource);
    findByThreadIdOrdered(threadId: string): Promise<AgentExecution[]>;
    findRunning(): Promise<RunningAgentExecution[]>;
    touchRunning(executionId: string): Promise<void>;
    updateTimelineIfRunning(executionId: string, timeline: AgentExecution['timeline']): Promise<boolean>;
    updateIfRunning(executionId: string, values: AgentExecutionFinalizationValues): Promise<boolean>;
    findFirstUserMessageByThreadIds(threadIds: string[]): Promise<Map<string, string>>;
    findFirstSourceByThreadIds(threadIds: string[]): Promise<Map<string, string>>;
    findSuspendedWithoutModel(threadId: string): Promise<AgentExecution[]>;
    findLatestSuspendedByThreadId(threadId: string): Promise<AgentExecution | null>;
    backfillModel(executionIds: string[], model: string): Promise<void>;
    deleteByThreadId(threadId: string): Promise<void>;
    findBlobRefsByThreadId(threadId: string): Promise<Array<Pick<AgentExecution, 'id' | 'storedAt'>>>;
    findBlobRefsByAgentId(agentId: string): Promise<Array<Pick<AgentExecution, 'id' | 'threadId' | 'storedAt'>>>;
}
export {};
