export type LineLike = string | LinesBuilder | null;
export interface LinesBuilderOptions {
    indent?: string | number | null;
    indentEmpty?: boolean;
    skipFirstLevelIndent?: boolean;
    skipEmpty?: boolean;
    trimLeft?: boolean;
    trimRight?: boolean;
    eol?: string | null;
}
export type LineMather = (line: string, i: number) => boolean;
export type LineMapper = (line: string, i: number, level: number) => string;
export declare function splitToLines(s: string): string[];
export declare class LinesBuilder {
    private static DEFAULT_OPTIONS;
    private options;
    private lines;
    get length(): number;
    constructor(...ls: LineLike[]);
    constructor(options: Partial<LinesBuilderOptions>, ...ls: LineLike[]);
    static resetDefaultOptions(): LinesBuilderOptions;
    static setDefaultOptions(options: Partial<LinesBuilderOptions>): LinesBuilderOptions;
    private parseLines;
    toString(): string;
    copy(): LinesBuilder;
    append(...ls: LineLike[]): LinesBuilder;
    prepend(...ls: LineLike[]): LinesBuilder;
    filter(matcher: string, reverse?: boolean, inPlace?: boolean): LinesBuilder;
    filter(matcher: RegExp, reverse?: boolean, inPlace?: boolean): LinesBuilder;
    filter(matcher: LineMather, reverse?: boolean, inPlace?: boolean): LinesBuilder;
    protected internalMap(mapper: LineMapper, level: number): void;
    map(mapper: LineMapper, inPlace?: boolean): LinesBuilder;
}
export declare const setDefaultOptions: typeof LinesBuilder.setDefaultOptions;
export declare const resetDefaultOptions: typeof LinesBuilder.resetDefaultOptions;
export declare function lines(...ls: LineLike[]): LinesBuilder;
export declare function lines(options: Partial<LinesBuilderOptions>, ...ls: LineLike[]): LinesBuilder;
