export declare const FOLD_FLOW = "flow";
export declare const FOLD_BLOCK = "block";
export declare const FOLD_QUOTED = "quoted";
/**
 * `'block'` prevents more-indented lines from being folded;
 * `'quoted'` allows for `\` escapes, including escaped newlines
 */
export type FoldMode = 'flow' | 'block' | 'quoted';
export interface FoldOptions {
    /**
     * Accounts for leading contents on the first line, defaulting to
     * `indent.length`
     */
    indentAtStart?: number;
    /** Default: `80` */
    lineWidth?: number;
    /**
     * Allow highly indented lines to stretch the line width or indent content
     * from the start.
     *
     * Default: `20`
     */
    minContentWidth?: number;
    /** Called once if the text is folded */
    onFold?: () => void;
    /** Called once if any line of text exceeds lineWidth characters */
    onOverflow?: () => void;
}
/**
 * Tries to keep input at up to `lineWidth` characters, splitting only on spaces
 * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are
 * terminated with `\n` and started with `indent`.
 */
export declare function foldFlowLines(text: string, indent: string, mode?: FoldMode, { indentAtStart, lineWidth, minContentWidth, onFold, onOverflow }?: FoldOptions): string;