import type { OpenClawConfig } from "../config/config.js";
export { resolveAgentIdFromSessionKey } from "../routing/session-key.js";
type AgentEntry = NonNullable<NonNullable<OpenClawConfig["agents"]>["list"]>[number];
type ResolvedAgentConfig = {
    name?: string;
    workspace?: string;
    agentDir?: string;
    agentType?: AgentEntry["agentType"];
    model?: AgentEntry["model"];
    skills?: AgentEntry["skills"];
    denyskills?: AgentEntry["denyskills"];
    memorySearch?: AgentEntry["memorySearch"];
    humanDelay?: AgentEntry["humanDelay"];
    heartbeat?: AgentEntry["heartbeat"];
    identity?: AgentEntry["identity"];
    groupChat?: AgentEntry["groupChat"];
    subagents?: AgentEntry["subagents"];
    sandbox?: AgentEntry["sandbox"];
    tools?: AgentEntry["tools"];
    contextMode?: AgentEntry["contextMode"];
    workspaces?: AgentEntry["workspaces"];
    defaultWorkspace?: AgentEntry["defaultWorkspace"];
    memory?: AgentEntry["memory"];
};
export declare function listAgentEntries(cfg: OpenClawConfig): AgentEntry[];
export declare function listAgentIds(cfg: OpenClawConfig): string[];
export declare function resolveDefaultAgentId(cfg: OpenClawConfig): string;
export declare function resolveSessionAgentIds(params: {
    sessionKey?: string;
    config?: OpenClawConfig;
}): {
    defaultAgentId: string;
    sessionAgentId: string;
};
export declare function resolveSessionAgentId(params: {
    sessionKey?: string;
    config?: OpenClawConfig;
}): string;
export declare function resolveAgentConfig(cfg: OpenClawConfig, agentId: string): ResolvedAgentConfig | undefined;
export declare function resolveAgentSkillsFilter(cfg: OpenClawConfig, agentId: string): string[] | undefined;
/**
 * Phase D LD-2: resolves the agent's deny list. Deny wins over allow when
 * both list a skill. Undefined means "no skills denied" (current default).
 */
export declare function resolveAgentSkillsDenyFilter(cfg: OpenClawConfig, agentId: string): string[] | undefined;
export declare function resolveAgentModelPrimary(cfg: OpenClawConfig, agentId: string): string | undefined;
export declare function resolveAgentModelFallbacksOverride(cfg: OpenClawConfig, agentId: string): string[] | undefined;
export declare function resolveEffectiveModelFallbacks(params: {
    cfg: OpenClawConfig;
    agentId: string;
    hasSessionModelOverride: boolean;
}): string[] | undefined;
export declare function resolveAgentWorkspaceDir(cfg: OpenClawConfig, agentId: string): string;
export declare function resolveAgentDir(cfg: OpenClawConfig, agentId: string): string;
/**
 * Resolve the overlay directory for a named workspace.
 * Returns undefined if no workspaceId provided (agent uses base workspace only).
 * The overlay dir contains workspace-specific files (TOOLS.md, FOCUS.md, HEARTBEAT.md)
 * that layer on top of the base workspace identity files.
 */
export declare function resolveWorkspaceOverlayDir(cfg: OpenClawConfig, agentId: string, workspaceId?: string): string | undefined;
