/**
 * Prompt Generator Service
 *
 * Generates and manages system prompts for team members by composing:
 * - Role base prompts (from role definitions)
 * - Skill instructions (from assigned skills)
 *
 * Also adds context prefixes to help agents re-read their prompts
 * when context window is compressed.
 *
 * @module services/prompt/prompt-generator.service
 */
import type { TeamMember, Team } from '../../types/index.js';
/**
 * Service for generating and managing team member prompts.
 */
export declare class PromptGeneratorService {
    private static instance;
    private storageService;
    private logger;
    private configDir;
    private crewlyHome;
    constructor();
    /**
     * Get singleton instance of PromptGeneratorService.
     *
     * @returns The singleton instance
     */
    static getInstance(): PromptGeneratorService;
    /**
     * Reset singleton instance (for testing).
     */
    static resetInstance(): void;
    /**
     * Generate a full prompt for a team member by composing:
     * 1. Role base prompt
     * 2. Skill instructions for each assigned skill
     *
     * @param member - The team member
     * @param teamId - The team ID
     * @returns The composed prompt content
     */
    generateMemberPrompt(member: TeamMember, teamId: string): Promise<string>;
    /**
     * Generate and save a prompt for a team member.
     *
     * @param member - The team member
     * @param teamId - The team ID
     * @returns The generated prompt content
     */
    generateAndSaveMemberPrompt(member: TeamMember, teamId: string): Promise<string>;
    /**
     * Regenerate prompts for all members of a team.
     *
     * @param team - The team
     */
    regenerateTeamPrompts(team: Team): Promise<void>;
    /**
     * Get the effective skills for a team member.
     * Combines role's assigned skills with member's skillOverrides,
     * minus any excludedRoleSkills.
     *
     * @param member - The team member
     * @returns Array of skill IDs
     */
    getMemberSkills(member: TeamMember): Promise<string[]>;
    /**
     * Get the assigned skills for a role from config/roles/{role}/role.json
     *
     * @param role - The role name
     * @returns Array of skill IDs assigned to the role
     */
    getRoleAssignedSkills(role: string): Promise<string[]>;
    /**
     * Get the base prompt for a role from config/roles/{role}/prompt.md
     *
     * @param role - The role name
     * @returns The role prompt content or null if not found
     */
    getRoleBasePrompt(role: string): Promise<string | null>;
    /**
     * Get the instructions for a skill from config/skills/{skill}/instructions.md
     *
     * @param skillId - The skill ID (can include category, e.g., "mcp/chrome-browser")
     * @returns The skill instructions content or null if not found
     */
    getSkillInstructions(skillId: string): Promise<string | null>;
    /**
     * Build a context prefix to prepend to messages sent to agents.
     * This helps agents remember their identity when context is compressed.
     *
     * @param member - The team member
     * @param teamId - The team ID
     * @param teamName - The team name
     * @returns The context prefix string
     */
    buildContextPrefix(member: TeamMember, teamId: string, teamName: string): string;
    /**
     * Build a context prefix for the orchestrator.
     *
     * @returns The context prefix string
     */
    buildOrchestratorContextPrefix(): string;
}
export declare const getPromptGeneratorService: () => PromptGeneratorService;
//# sourceMappingURL=prompt-generator.service.d.ts.map