/**
 * Session type definitions
 */
import type { AgentResponse } from './response.js';
import type { Status } from './status.js';
type SessionAgentStatus = 'pending' | Status;
/**
 * Session state for workflow execution
 */
export interface SessionState {
    task: string;
    projectDir: string;
    iteration: number;
    maxSteps: number;
    coderStatus: SessionAgentStatus;
    architectStatus: SessionAgentStatus;
    supervisorStatus: SessionAgentStatus;
    history: AgentResponse[];
    context: string;
}
/**
 * Create a new session state
 */
export declare function createSessionState(task: string, projectDir: string, options?: Partial<Omit<SessionState, 'task' | 'projectDir'>>): SessionState;
/**
 * Conversation message for interactive mode
 */
export interface ConversationMessage {
    role: 'user' | 'assistant';
    content: string;
    timestamp: string;
}
/**
 * Create a new conversation message
 */
export declare function createConversationMessage(role: 'user' | 'assistant', content: string): ConversationMessage;
/**
 * Interactive session state
 */
export interface InteractiveSession {
    projectDir: string;
    context: string;
    sessionId: string | null;
    messages: ConversationMessage[];
    userApprovedTools: string[];
    currentWorkflow: string;
}
/**
 * Create a new interactive session
 */
export declare function createInteractiveSession(projectDir: string, options?: Partial<Omit<InteractiveSession, 'projectDir'>>): InteractiveSession;
export {};
//# sourceMappingURL=session.d.ts.map