import type { FasedAgentConfig } from "../config/config.js";
import type { AgentDefaultsConfig } from "../config/types.agent-defaults.js";
import { resolveAgentIdFromSessionKey } from "../routing/session-key.js";
export { resolveAgentIdFromSessionKey };
type AgentEntry = NonNullable<NonNullable<FasedAgentConfig["agents"]>["list"]>[number];
type ResolvedAgentConfig = {
    name?: string;
    workspace?: string;
    agentDir?: string;
    activeModelProvider?: AgentEntry["activeModelProvider"];
    modelProviders?: AgentEntry["modelProviders"];
    model?: AgentEntry["model"];
    taskModels?: AgentEntry["taskModels"];
    thinkingDefault?: AgentEntry["thinkingDefault"];
    verboseDefault?: AgentDefaultsConfig["verboseDefault"];
    reasoningDefault?: AgentEntry["reasoningDefault"];
    fastModeDefault?: AgentEntry["fastModeDefault"];
    skills?: AgentEntry["skills"];
    memorySearch?: AgentEntry["memorySearch"];
    humanDelay?: AgentEntry["humanDelay"];
    heartbeat?: AgentEntry["heartbeat"];
    identity?: AgentEntry["identity"];
    groupChat?: AgentEntry["groupChat"];
    subagents?: AgentEntry["subagents"];
    sandbox?: AgentEntry["sandbox"];
    tools?: AgentEntry["tools"];
};
export declare function listAgentEntries(cfg: FasedAgentConfig): AgentEntry[];
export declare function listAgentIds(cfg: FasedAgentConfig): string[];
export declare function resolveDefaultAgentId(cfg: FasedAgentConfig): string;
export declare function resolveSessionAgentIds(params: {
    sessionKey?: string;
    config?: FasedAgentConfig;
    agentId?: string;
}): {
    defaultAgentId: string;
    sessionAgentId: string;
};
export declare function resolveSessionAgentId(params: {
    sessionKey?: string;
    config?: FasedAgentConfig;
}): string;
export declare function resolveAgentConfig(cfg: FasedAgentConfig, agentId: string): ResolvedAgentConfig | undefined;
export declare function resolveAgentSkillsFilter(cfg: FasedAgentConfig, agentId: string): string[] | undefined;
export declare function resolveAgentExplicitModelPrimary(cfg: FasedAgentConfig, agentId: string): string | undefined;
export declare function resolveAgentEffectiveModelPrimary(cfg: FasedAgentConfig, agentId: string): string | undefined;
export declare function resolveAgentModelPrimary(cfg: FasedAgentConfig, agentId: string): string | undefined;
export declare function resolveAgentModelFallbacksOverride(cfg: FasedAgentConfig, agentId: string): string[] | undefined;
export declare function resolveFallbackAgentId(params: {
    agentId?: string | null;
    sessionKey?: string | null;
}): string;
export declare function resolveRunModelFallbacksOverride(params: {
    cfg: FasedAgentConfig | undefined;
    agentId?: string | null;
    sessionKey?: string | null;
}): string[] | undefined;
export declare function hasConfiguredModelFallbacks(params: {
    cfg: FasedAgentConfig | undefined;
    agentId?: string | null;
    sessionKey?: string | null;
}): boolean;
export declare function resolveEffectiveModelFallbacks(params: {
    cfg: FasedAgentConfig;
    agentId: string;
    hasSessionModelOverride: boolean;
}): string[] | undefined;
export declare function resolveAgentWorkspaceDir(cfg: FasedAgentConfig, agentId: string): string;
export declare function resolveAgentIdsByWorkspacePath(cfg: FasedAgentConfig, workspacePath: string): string[];
export declare function resolveAgentIdByWorkspacePath(cfg: FasedAgentConfig, workspacePath: string): string | undefined;
export declare function resolveAgentDir(cfg: FasedAgentConfig, agentId: string, env?: NodeJS.ProcessEnv): string;
