import type { AgentDefinition } from './agent-definition';
import type * as Tools from './tools';
export type { Tools };
export type AllToolNames = Tools.ToolName | 'add_subgoal' | 'browser_logs' | 'create_plan' | 'spawn_agent_inline' | 'update_subgoal';
export interface SecretAgentDefinition extends Omit<AgentDefinition, 'toolNames'> {
    /** Tools this agent can use. */
    toolNames?: AllToolNames[];
}
declare const placeholderNames: readonly ["AGENT_NAME", "AGENTS_PROMPT", "FILE_TREE_PROMPT_SMALL", "FILE_TREE_PROMPT", "FILE_TREE_PROMPT_LARGE", "GIT_CHANGES_PROMPT", "INITIAL_AGENT_PROMPT", "KNOWLEDGE_FILES_CONTENTS", "PROJECT_ROOT", "REMAINING_STEPS", "SYSTEM_INFO_PROMPT", "TOOLS_PROMPT", "USER_CWD", "USER_INPUT_PROMPT"];
type PlaceholderType<T extends readonly string[]> = {
    [K in T[number]]: `{LEVELCODE_${K}}`;
};
export declare const PLACEHOLDER: PlaceholderType<typeof placeholderNames>;
export type PlaceholderValue = (typeof PLACEHOLDER)[keyof typeof PLACEHOLDER];
export declare const placeholderValues: ("{LEVELCODE_AGENT_NAME}" | "{LEVELCODE_FILE_TREE_PROMPT_SMALL}" | "{LEVELCODE_FILE_TREE_PROMPT}" | "{LEVELCODE_FILE_TREE_PROMPT_LARGE}" | "{LEVELCODE_GIT_CHANGES_PROMPT}" | "{LEVELCODE_INITIAL_AGENT_PROMPT}" | "{LEVELCODE_KNOWLEDGE_FILES_CONTENTS}" | "{LEVELCODE_PROJECT_ROOT}" | "{LEVELCODE_REMAINING_STEPS}" | "{LEVELCODE_SYSTEM_INFO_PROMPT}" | "{LEVELCODE_USER_CWD}" | "{LEVELCODE_USER_INPUT_PROMPT}" | "{LEVELCODE_AGENTS_PROMPT}" | "{LEVELCODE_TOOLS_PROMPT}")[];
export declare const AgentTemplateTypeList: readonly ["base", "base_lite", "base_max", "base_experimental", "claude4_gemini_thinking", "superagent", "base_agent_builder", "ask", "dry_run", "thinker", "file_picker", "file_explorer", "researcher", "reviewer", "agent_builder", "example_programmatic"];
type UnderscoreToDash<S extends string> = S extends `${infer L}_${infer R}` ? `${L}-${UnderscoreToDash<R>}` : S;
export declare const AgentTemplateTypes: { [K in (typeof AgentTemplateTypeList)[number]]: UnderscoreToDash<K>; };
export type AgentTemplateType = (typeof AgentTemplateTypeList)[number] | (string & {});
