import type { Request as ExpressRequest } from 'express';
import { AgentSessionsService } from '../services/sessions.service';
export declare class AgentSessionsController {
    private readonly sessionsService;
    constructor(sessionsService: AgentSessionsService);
    listSessions(query: Record<string, string>, req: ExpressRequest): Promise<{
        items: {
            title: string | null;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.AgentSessionStatus;
            updatedAt: Date;
            organizationId: string;
            createdById: string;
            closedAt: Date | null;
            surface: import("@prisma/client").$Enums.AgentSurface;
            projectId: string | null;
            personaId: string | null;
            planMode: import("@prisma/client").$Enums.AgentPlanMode;
            permissionMode: import("@prisma/client").$Enums.AgentPermissionMode;
            parentSessionId: string | null;
        }[];
    }>;
    createSession(body: {
        title?: string;
        projectId?: string;
        personaId?: string;
        organizationId?: string;
    }, req: ExpressRequest): Promise<{
        title: string | null;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.AgentSessionStatus;
        updatedAt: Date;
        organizationId: string;
        createdById: string;
        closedAt: Date | null;
        surface: import("@prisma/client").$Enums.AgentSurface;
        projectId: string | null;
        personaId: string | null;
        planMode: import("@prisma/client").$Enums.AgentPlanMode;
        permissionMode: import("@prisma/client").$Enums.AgentPermissionMode;
        parentSessionId: string | null;
    }>;
    getSession(id: string, req: ExpressRequest): Promise<{
        messages: {
            type: import("@prisma/client").$Enums.AgentMessageType;
            id: string;
            createdAt: Date;
            sessionId: string;
            content: string | null;
            payload: import("@prisma/client/runtime/library").JsonValue | null;
            model: string | null;
            sequence: number;
            turnId: string;
        }[];
    } & {
        title: string | null;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.AgentSessionStatus;
        updatedAt: Date;
        organizationId: string;
        createdById: string;
        closedAt: Date | null;
        surface: import("@prisma/client").$Enums.AgentSurface;
        projectId: string | null;
        personaId: string | null;
        planMode: import("@prisma/client").$Enums.AgentPlanMode;
        permissionMode: import("@prisma/client").$Enums.AgentPermissionMode;
        parentSessionId: string | null;
    }>;
    deleteSession(id: string, req: ExpressRequest): Promise<{
        title: string | null;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.AgentSessionStatus;
        updatedAt: Date;
        organizationId: string;
        createdById: string;
        closedAt: Date | null;
        surface: import("@prisma/client").$Enums.AgentSurface;
        projectId: string | null;
        personaId: string | null;
        planMode: import("@prisma/client").$Enums.AgentPlanMode;
        permissionMode: import("@prisma/client").$Enums.AgentPermissionMode;
        parentSessionId: string | null;
    }>;
    updateSession(id: string, body: {
        title?: string | null;
        personaId?: string | null;
        projectId?: string | null;
    }, req: ExpressRequest): Promise<{
        title: string | null;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.AgentSessionStatus;
        updatedAt: Date;
        organizationId: string;
        createdById: string;
        closedAt: Date | null;
        surface: import("@prisma/client").$Enums.AgentSurface;
        projectId: string | null;
        personaId: string | null;
        planMode: import("@prisma/client").$Enums.AgentPlanMode;
        permissionMode: import("@prisma/client").$Enums.AgentPermissionMode;
        parentSessionId: string | null;
    }>;
    rewindSession(id: string, body: {
        afterSequence: number;
    }, req: ExpressRequest): Promise<{
        ok: true;
        deleted: number;
    }>;
}
