/**
 * Resets the sticky-header state so the next needleLog call always emits its
 * [plugin-name] header. Call this at the start of a new build or any logical
 * output section where you want a guaranteed fresh header.
 */
export function resetLastLoggedPlugin(): void;
/**
 * @param {string} pluginName
 * @param {string | string[]} message
 * @param {'log' | 'warn' | 'error'} [level='log']
 * @param {{ dimBody?: boolean, leadingNewline?: boolean, showHeader?: boolean }} [options]
 */
export function needleLog(pluginName: string, message: string | string[], level?: "log" | "warn" | "error", options?: {
    dimBody?: boolean;
    leadingNewline?: boolean;
    showHeader?: boolean;
}): void;
/**
 * @param {string} pluginName
 * @param {string[]} lines
 * @param {'log' | 'warn' | 'error'} [level='log']
 */
export function needleLogLines(pluginName: string, lines: string[], level?: "log" | "warn" | "error"): void;
export function needleSupportsColor(): boolean;
export function needleBlue(text: any): string;
export function needleDim(text: any): string;
export function needleGreenBold(text: any): string;
/**
 * @param {(() => void) | null} cleaner
 */
export function setTransientLogLineCleaner(cleaner: (() => void) | null): void;
