import type { SelfHealReport } from './self-heal/types.js';
export interface InteractiveShimHealResult {
    noticeLines: string[] | null;
    report: SelfHealReport;
}
/**
 * Heal the shim/shadow/PATH conditions silently, then return both the raw report
 * and the notice lines to print ONCE for whatever is left (a real-binary shadow we
 * won't move; a PATH entry that was just added / needs a reload).
 */
export declare function runInteractiveShimHeal(): Promise<InteractiveShimHealResult>;
/**
 * Back-compat wrapper for callers that only need the persistent one-time notice.
 */
export declare function healShimsInteractive(): Promise<string[] | null>;
type PathNoticeState = 'ok' | 'added' | 'reload';
/**
 * A stable signature of the conditions worth surfacing: the sorted set of
 * real-binary shadows plus the PATH notice state. Empty string = nothing to say.
 */
export declare function computeShimNoticeSignature(input: {
    shadowNotes: string[];
    pathState: PathNoticeState;
}): string;
/**
 * Whether to surface the notice for the current condition. Returns false (stay
 * quiet) when the exact same signature was already surfaced, or when there's
 * nothing to say. On true it records the signature so the next shell with the same
 * state is suppressed. An empty signature clears the marker.
 */
export declare function shouldSurfaceShimNotice(signature: string): boolean;
export {};
