import type { Command } from 'vscode';
import { DocumentId } from '../../../platform/inlineEdits/common/dataTypes/documentId';
import { ShowNextEditPreference } from '../../../platform/inlineEdits/common/statelessNextEditProvider';
import { StringReplacement } from '../../../util/vs/editor/common/core/edits/stringEdit';
import { Range } from '../../../util/vs/editor/common/core/range';
import { StringText } from '../../../util/vs/editor/common/core/text/abstractText';
import { NextEditFetchRequest } from './nextEditProvider';
export interface INextEditDisplayLocation {
    range: Range;
    label: string;
}
export interface INextEditResult {
    requestId: number;
    result: {
        edit: StringReplacement;
        showRangePreference?: ShowNextEditPreference;
        displayLocation?: INextEditDisplayLocation;
        targetDocumentId?: DocumentId;
    } | undefined;
}
export declare class NextEditResult implements INextEditResult {
    readonly requestId: number;
    readonly source: NextEditFetchRequest;
    readonly result: {
        edit: StringReplacement;
        showRangePreference?: ShowNextEditPreference;
        documentBeforeEdits: StringText;
        displayLocation?: INextEditDisplayLocation;
        targetDocumentId?: DocumentId;
        action?: Command;
    } | undefined;
    constructor(requestId: number, source: NextEditFetchRequest, result: {
        edit: StringReplacement;
        showRangePreference?: ShowNextEditPreference;
        documentBeforeEdits: StringText;
        displayLocation?: INextEditDisplayLocation;
        targetDocumentId?: DocumentId;
        action?: Command;
    } | undefined);
}
//# sourceMappingURL=nextEditResult.d.ts.map