/**
 * File attachment utilities and state manager for the interactive mode.
 * Handles serialization/deserialization of attached file paths in messages,
 * display formatting, input helpers, and stdin file-drop interception.
 */
import { Text } from '../../tui/index.js';
/** Strip surrounding single or double quotes from a string. */
export declare function stripQuotes(s: string): string;
/** Append attached file paths to the user's message text for the LLM. */
export declare function appendAttachedFiles(text: string, files: string[]): string;
/** Parse attached file paths from a message that was serialized with appendAttachedFiles. */
export declare function parseAttachedFiles(textContent: string): {
    displayText: string;
    attachedFiles: string[];
};
/** Format file paths for chat history display with ⎿ glyph and underlined basenames. */
export declare function formatAttachmentLabels(filePaths: string[]): string;
/**
 * Manages file attachment state, display, and stdin interception.
 * InteractiveMode creates one instance and wires its `displayComponent` into the editor container.
 */
export declare class AttachmentManager {
    private files;
    /** Text component showing attachment previews above the editor. */
    readonly displayComponent: Text;
    private readonly onChanged;
    constructor(onChanged: () => void);
    /** Validate and add a file. Returns true if added. */
    add(filePath: string): boolean;
    /** Take all files and clear. Returns the file paths that were attached. */
    take(): string[];
    /** Whether any files are currently attached. */
    get hasFiles(): boolean;
    /**
     * Intercept file drops on macOS.
     * macOS terminals send dropped files as raw quoted paths on stdin without
     * bracketed paste markers. We monkey-patch the terminal's stdin handler
     * to detect and redirect them to the attachment system.
     */
    interceptStdinFileDrops(terminal: {
        stdinDataHandler?: (data: string) => void;
    }): void;
    private updateDisplay;
}
//# sourceMappingURL=file-attachments.d.ts.map