/**
 * Pure formatting helpers for resource display (extensions, skills, prompts, themes).
 *
 * These helpers are shell-owned presentation utilities shared by interactive
 * mode and slash-command UI. They format metadata into human-readable strings
 * without depending on interactive mode state.
 */
import type { ResourceDiagnostic } from '../../app/resources/resource-loader.js';
type PathMetadata = {
    source: string;
    scope: string;
    origin: string;
};
type MetadataMap = Map<string, PathMetadata>;
export interface ScopeGroup {
    scope: 'user' | 'project' | 'path';
    paths: string[];
    packages: Map<string, string[]>;
}
export interface ResourceDisplayHelpers {
    formatDisplayPath(p: string): string;
    buildScopeGroups(paths: string[], metadata: MetadataMap): ScopeGroup[];
    formatScopeGroups(groups: ScopeGroup[], options: {
        formatPath: (p: string) => string;
        formatPackagePath: (p: string, source: string) => string;
    }): string;
    formatDiagnostics(diagnostics: readonly ResourceDiagnostic[], metadata: MetadataMap): string;
    formatPathWithSource(p: string, metadata: MetadataMap): string;
    getShortPath(fullPath: string, source: string): string;
}
/** Replace home directory prefix with ~ for display. */
export declare function formatDisplayPath(p: string): string;
/** Extract a short display path from npm/git package paths, falling back to formatDisplayPath. */
export declare function getShortPath(fullPath: string, source: string): string;
/** Resolve display label and color for a resource's source/scope combination. */
export declare function getDisplaySourceInfo(source: string, scope: string): {
    label: string;
    scopeLabel?: string;
    color: 'accent' | 'muted';
};
export declare function findMetadata(p: string, metadata: MetadataMap): PathMetadata | undefined;
/** Group resource paths by scope (project/user/path), separating packages from local files. */
export declare function buildScopeGroups(paths: string[], metadata: MetadataMap): ScopeGroup[];
/** Format scope groups into a multi-line display string with indentation. */
export declare function formatScopeGroups(groups: ScopeGroup[], options: {
    formatPath: (p: string) => string;
    formatPackagePath: (p: string, source: string) => string;
}): string;
export declare function formatPathWithSource(p: string, metadata: MetadataMap): string;
/** Format resource diagnostics (collisions, errors, warnings) for display. */
export declare function formatDiagnostics(diagnostics: readonly ResourceDiagnostic[], metadata: MetadataMap): string;
/** Create the standard ResourceDisplayHelpers bundle for use in interactive mode. */
export declare function createResourceDisplayHelpers(): ResourceDisplayHelpers;
export {};
//# sourceMappingURL=resource-display.d.ts.map