import type { SkillDownloadApprovalHandler, SkillDownloadChange } from '../../app/sync/skills-download.js';
import type { SkillUploadApprovalRequest, SkillUploadChange } from '../../app/sync/skills-upload.js';
import { Container, type Component } from '../../tui/index.js';
import type { InteractiveSessionClient } from '../session-client.js';
type SelectorCreate = (done: () => void) => {
    component: Component;
    focus: Component;
};
export interface SkillsWorkflowDependencies {
    session: InteractiveSessionClient;
    settingsManager: InteractiveSessionClient['settingsManager'];
    chatContainer: Container;
    showSelector(create: SelectorCreate): void;
    requestRender(): void;
    shutdown(): Promise<void>;
    showStatus(message: string): void;
    showWarning(message: string): void;
    showInfo(message: string): void;
    downloadSkillsWithApproval?: (approve: SkillDownloadApprovalHandler) => Promise<{
        downloaded: string[];
        skipped: string[];
        skippedByUser: string[];
        changes?: SkillDownloadChange[];
        errors: string[];
    }>;
    uploadSkills?: (approve: (request: SkillUploadApprovalRequest) => Promise<boolean>) => Promise<{
        uploaded: string[];
        skipped: string[];
        skippedByUser: string[];
        blockedTeam: string[];
        changes?: SkillUploadChange[];
        errors: string[];
    }>;
    reloadSkills(): Promise<void>;
    showConfirm(title: string, message: string): Promise<boolean>;
}
export declare class SkillsWorkflow {
    private readonly deps;
    constructor(deps: SkillsWorkflowDependencies);
    showSkillsSelector(): void;
    showDisabledSkillsWarning(): boolean;
    private getLoadedDisabledSkills;
    handleDownloadSkillsCommand(): Promise<void>;
    handleUploadSkillsCommand(): Promise<void>;
    private renderSummary;
    private pluralizeFile;
    private formatTimestampDetails;
    private formatFileDiffDetails;
    private formatRenderedChange;
    private formatFileDiff;
    private fileDiffLegend;
    private formatTimestamp;
    private getSkillDisplaySource;
}
export {};
//# sourceMappingURL=skills-workflow.d.ts.map