/**
 * src/sessions/types.ts
 * Session Types — Isolated agent sessions with memory
 */
import { z } from 'zod';
export declare const sessionSchema: z.ZodObject<{
    id: z.ZodString;
    tenant_id: z.ZodString;
    label: z.ZodOptional<z.ZodString>;
    kind: z.ZodEnum<{
        main: "main";
        isolated: "isolated";
        thread: "thread";
    }>;
    status: z.ZodEnum<{
        error: "error";
        active: "active";
        paused: "paused";
        completed: "completed";
    }>;
    model: z.ZodOptional<z.ZodString>;
    thinking: z.ZodDefault<z.ZodBoolean>;
    timeoutSeconds: z.ZodOptional<z.ZodNumber>;
    parent_session_id: z.ZodNullable<z.ZodString>;
    root_workspace_path: z.ZodString;
    created_at: z.ZodString;
    updated_at: z.ZodString;
    last_message_at: z.ZodNullable<z.ZodString>;
    message_count: z.ZodDefault<z.ZodNumber>;
}, z.core.$strip>;
export type Session = z.infer<typeof sessionSchema>;
export interface SessionMessage {
    id: string;
    session_id: string;
    role: 'user' | 'assistant' | 'system' | 'tool';
    content: string;
    tool_call_id?: string;
    tool_name?: string;
    created_at: string;
}
export declare const sessionMessageSchema: z.ZodObject<{
    id: z.ZodString;
    session_id: z.ZodString;
    role: z.ZodEnum<{
        tool: "tool";
        system: "system";
        user: "user";
        assistant: "assistant";
    }>;
    content: z.ZodString;
    tool_call_id: z.ZodNullable<z.ZodString>;
    tool_name: z.ZodNullable<z.ZodString>;
    created_at: z.ZodString;
}, z.core.$strip>;
export type SessionMessageRecord = z.infer<typeof sessionMessageSchema>;
export interface SpawnSessionOptions {
    tenantId: string;
    label?: string;
    kind?: 'isolated' | 'thread';
    model?: string;
    thinking?: boolean;
    timeoutSeconds?: number;
    parentSessionId?: string;
    message?: string;
}
export interface SessionResponse {
    session: Session;
    messages: SessionMessage[];
    output?: string;
}
//# sourceMappingURL=types.d.ts.map