import { type ProposalRoots } from '../../app/skill-proposals/proposal-fs.js';
import { Container, type SelectItem } from '../../tui/index.js';
export interface ProposalsWorkflowDependencies {
    chatContainer: Container;
    requestRender(): void;
    showStatus(message: string): void;
    showWarning(message: string): void;
    selectOption(title: string, options: SelectItem[]): Promise<string | undefined>;
    reloadSkills(): Promise<void>;
    scanProposals?(manualRequest?: string): Promise<boolean> | boolean;
    openProposalFolder?(path: string): Promise<void> | void;
    roots?: ProposalRoots;
}
export declare class ProposalsWorkflow {
    private readonly deps;
    private readonly roots;
    /** Wire the workflow to its UI dependencies and resolve the proposal roots. */
    constructor(deps: ProposalsWorkflowDependencies);
    /** Entry point for `/proposal` and `/proposal scan ...`; lists, scans, or reviews proposals. */
    handleProposalsCommand(args?: string): Promise<void>;
    /** Open one proposal in an editor and prompt the user to replace, version, reject, or close. */
    private reviewProposal;
    /** Trigger a skills reload after a successful apply, surfacing any reload errors. */
    private reloadSkillsAfterApply;
    /** Render the proposal review summary block (name, kind, rationale) into the chat container. */
    private renderProposalReview;
    /** Render rationale text (or a placeholder) for display in the proposal review block. */
    private formatRationale;
    /** Open the proposal folder in the user's editor; report a warning instead of failing the flow. */
    private openProposalFolder;
}
//# sourceMappingURL=proposals-workflow.d.ts.map