/** Commands that search/find content (collapsible in UI). */
export declare const SEARCH_COMMANDS: Set<string>;
/** Commands that read/display file content (collapsible in UI). */
export declare const READ_COMMANDS: Set<string>;
/** Commands that list directory contents. */
export declare const LIST_COMMANDS: Set<string>;
/**
 * Commands that are semantically neutral — they don't interact
 * with the file system in a meaningful way. Skipped when
 * classifying piped commands.
 */
export declare const SEMANTIC_NEUTRAL_COMMANDS: Set<string>;
/**
 * Commands that produce no stdout on success.
 * For these, the tool shows "Done" instead of "(No output)".
 */
export declare const SILENT_COMMANDS: Set<string>;
export interface CommandClassification {
    /** First "real" command word (after env vars / wrappers). */
    firstCommand: string | null;
    /** Whether the command is search-like (find, grep, etc.). */
    isSearch: boolean;
    /** Whether the command only reads (cat, head, stat, etc.). */
    isRead: boolean;
    /** Whether the command lists files (ls, tree, du). */
    isList: boolean;
    /** Whether the command is expected to produce no stdout. */
    isSilent: boolean;
    /** Whether the command is safe to run in parallel with others. */
    isConcurrencySafe: boolean;
    /** Whether the command only reads state (never mutates). */
    isReadOnly: boolean;
}
/**
 * Check whether a command has any `cd` or pushd/popd that changes CWD.
 * Ported from cc's `commandHasAnyCd()`.
 */
export declare function commandHasAnyCd(command: string): boolean;
/**
 * Classify a shell command.
 *
 * Mirrors cc's `isSearchOrReadBashCommand()` + `isSilentBashCommand()`.
 */
export declare function classifyCommand(command: string): CommandClassification;
