import { ReaderInternal } from "../core/editor.js";
import { TextItemList, TextMeta } from "./textItemList.js";
export interface BaseResult {
    hasNext(): Promise<boolean>;
    next(): Promise<BaseResult | undefined>;
    hasPrev(): Promise<boolean>;
    prev(): Promise<BaseResult | undefined>;
}
export declare class SearchResult implements BaseResult {
    protected _listItem: TextItemList;
    protected readonly _searchValue: Buffer;
    protected readonly reader: ReaderInternal;
    constructor(_listItem: TextItemList, _searchValue: Buffer, reader: ReaderInternal);
    get meta(): TextMeta;
    hasNext(): Promise<boolean>;
    next(): Promise<this | undefined>;
    hasPrev(): Promise<boolean>;
    prev(): Promise<this | undefined>;
    get searchValue(): Buffer;
}
export declare class LineResult implements BaseResult {
    protected _listItem: TextItemList;
    protected lineEnd: Buffer;
    protected reader: ReaderInternal;
    constructor(_listItem: TextItemList, lineEnd: Buffer, reader: ReaderInternal);
    protected patchPrevItems(): void;
    protected patchNextItems(): void;
    hasNext(): Promise<boolean>;
    next(): Promise<this | undefined>;
    hasPrev(): Promise<boolean>;
    prev(): Promise<this | undefined>;
    read(encoding: BufferEncoding): Promise<string>;
    read(): Promise<Buffer>;
}
