import { DataSource, Repository } from 'typeorm';
import { Session, Project, ContextTemplate, SystemPrompt } from '../core-entities';
import { CreateSessionDto, UpdateSessionDto, RevertSessionResponseDto } from './dto/session.dto';
import { ApplicationStateService } from '../application-state/application-state.service';
import { MessageBusService } from '../message-bus/message-bus.service';
export declare class SessionsService {
    private sessionsRepository;
    private projectsRepository;
    private contextTemplatesRepository;
    private systemPromptsRepository;
    private readonly applicationStateService;
    private readonly messageBusService;
    private readonly dataSource;
    private readonly logger;
    constructor(sessionsRepository: Repository<Session>, projectsRepository: Repository<Project>, contextTemplatesRepository: Repository<ContextTemplate>, systemPromptsRepository: Repository<SystemPrompt>, applicationStateService: ApplicationStateService, messageBusService: MessageBusService, dataSource: DataSource);
    create(createSessionDto: CreateSessionDto): Promise<Session>;
    findAll(filter?: string, limit?: number): Promise<Session[]>;
    findOne(id: string, includeExecutionLogs?: boolean): Promise<Session>;
    findOneLight(id: string): Promise<Session>;
    findActive(): Promise<Session | null>;
    findLatest(): Promise<Session | null>;
    setActive(id: string): Promise<void>;
    update(id: string, updateSessionDto: UpdateSessionDto): Promise<Session>;
    resetAllIsRunning(): Promise<void>;
    remove(id: string): Promise<void>;
    private findAllDescendantSessions;
    findChildSessions(parentSessionId: string): Promise<Session[]>;
    getFileChanges(sessionId: string): Promise<{
        file_path: string;
        initial_content: string | null;
        current_content: string | null;
    }[]>;
    cloneSession(sourceSessionId: string): Promise<Session>;
    revertFile(sessionId: string, filePath: string): Promise<void>;
    getInputFileChanges(sessionId: string, inputIds: string[]): Promise<{
        file_path: string;
        initial_content: string | null;
        current_content: string | null;
    }[]>;
    revertInputFileChanges(sessionId: string, inputIds: string[]): Promise<RevertSessionResponseDto>;
    revertSession(sessionId: string): Promise<RevertSessionResponseDto>;
}
