export interface MaskedStdinIO {
    stdout: {
        write: (s: string) => boolean;
    };
    stderr: {
        write: (s: string) => boolean;
    };
}
/**
 * Read from stdin. If input is piped (non-TTY), reads until EOF and returns
 * trimmed text. If TTY, reads interactively with masking (each char echoed
 * as `*`) until Enter.
 */
export declare function readSecretFromStdin(io?: MaskedStdinIO): Promise<string>;
