declare namespace cliTruncate { interface Options { /** Position to truncate the string. @default 'end' */ readonly position?: 'start' | 'middle' | 'end'; /** Add a space between the text and the ellipsis. @default false @example ``` cliTruncate('unicorns', 5, {position: 'end', space: true}); //=> 'uni …' cliTruncate('unicorns', 5, {position: 'end', space: false}); //=> 'unic…' cliTruncate('unicorns', 6, {position: 'start', space: true}); //=> '… orns' cliTruncate('unicorns', 7, {position: 'middle', space: true}); //=> 'uni … s' ``` */ readonly space?: boolean; /** Truncate the string from a whitespace if it is within 3 characters from the actual breaking point. @default false @example ``` cliTruncate('unicorns rainbow dragons', 20, {position: 'start', preferTruncationOnSpace: true}); //=> '…rainbow dragons' cliTruncate('unicorns rainbow dragons', 20, {position: 'middle', preferTruncationOnSpace: true}); //=> 'unicorns…dragons' cliTruncate('unicorns rainbow dragons', 6, {position: 'end', preferTruncationOnSpace: true}); //=> 'unico…' ```` */ readonly preferTruncationOnSpace?: boolean; } } /** Truncate a string to a specific width in the terminal. @param text - Text to truncate. @param columns - Columns to occupy in the terminal. @example ``` import cliTruncate = require('cli-truncate'); cliTruncate('unicorn', 4); //=> 'uni…' // Truncate at different positions cliTruncate('unicorn', 4, {position: 'start'}); //=> '…orn' cliTruncate('unicorn', 4, {position: 'middle'}); //=> 'un…n' cliTruncate('\u001B[31municorn\u001B[39m', 4); //=> '\u001B[31muni\u001B[39m…' // Truncate Unicode surrogate pairs cliTruncate('uni\uD83C\uDE00corn', 5); //=> 'uni\uD83C\uDE00…' // Truncate fullwidth characters cliTruncate('안녕하세요', 3); //=> '안…' // Truncate the paragraph to the terminal width const paragraph = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.'; cliTruncate(paragraph, process.stdout.columns)); //=> 'Lorem ipsum dolor sit amet, consectetuer adipiscing…' ``` */ declare function cliTruncate( text: string, columns: number, options?: cliTruncate.Options ): string; export = cliTruncate;