export interface UploadSpinner {
    start: (message: string) => void;
    message: (message: string) => void;
    stop: (message?: string) => void;
    error: (message: string) => void;
}
export interface UploadReporter {
    info: (message: string) => void;
    warn: (message: string) => void;
    error: (message: string) => void;
    success: (message: string) => void;
    intro: (message: string) => void;
    outro: (message: string) => void;
    spinner: () => UploadSpinner;
}
export declare const clackUploadReporter: UploadReporter;
export declare function getUploadReporter(): UploadReporter;
/**
 * Returns the reporter only while an internal upload explicitly supplies one.
 * Shared helpers use this to preserve normal Clack output outside the Ink flow.
 */
export declare function getActiveUploadReporter(): UploadReporter | undefined;
export declare function runWithUploadReporter<T>(reporter: UploadReporter | undefined, action: () => Promise<T>): Promise<T>;
