import type { DynamicAgentValidationError } from '@levelcode/common/templates/agent-validation';
import type { AgentTemplate } from '@levelcode/common/types/agent-template';
import type { FetchAgentFromDatabaseFn } from '@levelcode/common/types/contracts/database';
import type { Logger } from '@levelcode/common/types/contracts/logger';
import type { ParamsExcluding } from '@levelcode/common/types/function-params';
import type { ProjectFileContext } from '@levelcode/common/util/file';
/**
 * Single function to look up an agent template with clear priority order:
 * 1. localAgentTemplates (dynamic agents + static templates)
 * 2. Database cache
 * 3. Database query
 */
export declare function getAgentTemplate(params: {
    agentId: string;
    localAgentTemplates: Record<string, AgentTemplate>;
    fetchAgentFromDatabase: FetchAgentFromDatabaseFn;
    databaseAgentCache: Map<string, AgentTemplate | null>;
    logger: Logger;
} & ParamsExcluding<FetchAgentFromDatabaseFn, 'parsedAgentId'>): Promise<AgentTemplate | null>;
/**
 * Assemble local agent templates from fileContext + static templates + team agents
 */
export declare function assembleLocalAgentTemplates(params: {
    fileContext: ProjectFileContext;
    logger: Logger;
}): {
    agentTemplates: Record<string, AgentTemplate>;
    validationErrors: DynamicAgentValidationError[];
};
/**
 * Clear the database agent cache (useful for testing)
 */
export declare function clearDatabaseCache(params: {
    databaseAgentCache: Map<string, AgentTemplate | null>;
}): void;
