/**
 * Agent Configuration
 *
 * Defines configuration for multi-agent isolation including
 * agent types, capabilities, and workspace settings.
 */
/**
 * Agent type identifier
 */
export type AgentType = 'coding' | 'research' | 'review' | 'planning' | 'custom';
/**
 * Agent capabilities
 */
export interface AgentCapabilities {
    /** Can read files */
    canRead: boolean;
    /** Can write files */
    canWrite: boolean;
    /** Can execute commands */
    canExecute: boolean;
    /** Can access network */
    canNetwork: boolean;
    /** Can access memory */
    canMemory: boolean;
    /** Allowed tool groups */
    allowedToolGroups: string[];
    /** Denied tool groups */
    deniedToolGroups: string[];
}
/**
 * Agent configuration
 */
export interface AgentConfig {
    /** Unique agent ID */
    id: string;
    /** Agent type */
    type: AgentType;
    /** Display name */
    name: string;
    /** Description */
    description?: string;
    /** Agent capabilities */
    capabilities: AgentCapabilities;
    /** Parent agent ID (for hierarchical agents) */
    parentId?: string;
    /** Maximum concurrent operations */
    maxConcurrentOps: number;
    /** Session timeout in milliseconds */
    sessionTimeoutMs: number;
    /** Custom metadata */
    metadata?: Record<string, unknown>;
}
/**
 * Session key format: agent:<agent-id>:<session-key>
 */
export interface AgentSession {
    /** Session key */
    key: string;
    /** Agent ID */
    agentId: string;
    /** Session ID */
    sessionId: string;
    /** Creation timestamp */
    createdAt: number;
    /** Last activity timestamp */
    lastActivityAt: number;
    /** Session metadata */
    metadata?: Record<string, unknown>;
}
/**
 * Default capabilities by agent type
 */
export declare const DEFAULT_CAPABILITIES: Record<AgentType, AgentCapabilities>;
/**
 * Default agent configuration
 */
export declare const DEFAULT_AGENT_CONFIG: Omit<AgentConfig, 'id' | 'type' | 'name'>;
/**
 * Create agent configuration with defaults
 */
export declare function createAgentConfig(id: string, type: AgentType, name: string, overrides?: Partial<AgentConfig>): AgentConfig;
/**
 * Generate session key for an agent
 */
export declare function generateSessionKey(agentId: string, sessionId: string): string;
/**
 * Parse session key
 */
export declare function parseSessionKey(key: string): {
    agentId: string;
    sessionId: string;
} | null;
/**
 * Check if a capability is allowed for an agent
 */
export declare function isCapabilityAllowed(config: AgentConfig, capability: keyof AgentCapabilities): boolean;
/**
 * Check if a tool group is allowed for an agent
 */
export declare function isToolGroupAllowed(config: AgentConfig, toolGroup: string): boolean;
