/**
 * Effective agent profile: merges `agents.defaults` with `agents.list` entry.
 * Subagent session keys fall back to the configured default agent id for profile lookup.
 */
import type { ThinkLevel, ReasoningLevel, VerboseLevel } from '../agent/transcript/thinking-types.js';
import type { Config } from './schema.js';
import type { AgentModelConfig } from './schema.js';
export { resolveAgentWorkspaceDir } from '../agent/agent-scope.js';
export type { AgentModelConfig };
export interface EffectiveAgentTools {
    /** Tool names to exclude (merged: union of defaults + list entry disables). */
    disable: Set<string>;
}
export interface EffectiveAgentProfile {
    agentId: string;
    /** Resolved absolute Markdown workspace path (tool cwd, attachments, daily memory/, …). */
    resolvedWorkspacePath: string;
    /** Primary model ref (provider/model); may be empty → runtime default. */
    primaryModelRef: string | undefined;
    fallbacks: string[];
    thinkingDefault?: ThinkLevel;
    reasoningDefault?: ReasoningLevel;
    verboseDefault?: VerboseLevel;
    systemPromptOverride?: string;
    /** When set, only these skill names appear in `<available_skills>`. */
    skillsAllowlist?: string[];
    tools: EffectiveAgentTools;
    params: Record<string, unknown>;
}
/**
 * Agent id used for config lookup from a session key (subagent keys → default agent).
 */
export declare function extractProfileAgentId(sessionKey: string | undefined | null, config: Config): string;
/**
 * Merge `agents.defaults` with the matching `agents.list` entry.
 */
export declare function resolveEffectiveAgentProfile(config: Config, agentId: string): EffectiveAgentProfile;
export declare function resolveEffectiveAgentProfileForSession(config: Config, sessionKey: string | undefined | null): EffectiveAgentProfile;
