/**
 * ListAgentPromptsUseCase
 *
 * Returns the merged view of every built-in prompt for an agent type
 * with its currently active override (when one exists). Powers the
 * agent editor's Prompts tab (FR-37).
 */
import type { IAgentPromptOverrideRepository } from '../../ports/output/repositories/agent-prompt-override-repository.interface.js';
import type { ICustomAgentRepository } from '../../ports/output/repositories/custom-agent-repository.interface.js';
import type { AgentPromptOverride } from '../../../domain/generated/output.js';
export interface AgentPromptEntry {
    agentType: string;
    promptId: string;
    name: string;
    description: string;
    /** Bundled (default) prompt body — never mutated. */
    bundledBody: string;
    /** Active override body when present, else the bundled body. */
    effectiveBody: string;
    hasOverride: boolean;
    /** Override metadata when present. */
    override?: AgentPromptOverride;
}
export interface ListAgentPromptsInput {
    agentType: string;
}
export declare class ListAgentPromptsUseCase {
    private readonly overrides;
    private readonly customAgents;
    constructor(overrides: IAgentPromptOverrideRepository, customAgents: ICustomAgentRepository);
    /**
     * List every registered agent type (built-ins + customs) with its slot
     * count. Built-ins always come first; customs follow in alphabetical
     * order. Only the in-memory built-in catalog is consulted synchronously
     * — call {@link listAgentTypesAsync} to include customs.
     */
    listAgentTypes(): {
        agentType: string;
        promptCount: number;
        isCustom?: boolean;
    }[];
    listAgentTypesAsync(): Promise<{
        agentType: string;
        promptCount: number;
        isCustom: boolean;
        name?: string;
    }[]>;
    execute(input: ListAgentPromptsInput): Promise<AgentPromptEntry[]>;
}
//# sourceMappingURL=list-agent-prompts.use-case.d.ts.map