import * as xtabPromptOptions from '../../../platform/inlineEdits/common/dataTypes/xtabPromptOptions';
import { ILogger } from '../../../platform/log/common/logService';
export interface ParseEditIntentResult {
    editIntent: xtabPromptOptions.EditIntent;
    remainingLinesStream: AsyncIterable<string>;
    parseError?: string;
}
/**
 * Mode for parsing edit intent from the model response.
 */
export declare enum EditIntentParseMode {
    /** Parse using XML-style tags: <|edit_intent|>value<|/edit_intent|> */
    Tags = "tags",
    /** Parse using short names on the first line: N|L|M|H */
    ShortName = "shortName"
}
/**
 * Parses the edit_intent from the first line of the response stream.
 * The edit_intent MUST be on the first line, otherwise it's treated as not provided.
 * Returns the parsed EditIntent and a new stream with the remaining content.
 *
 * Supports two modes:
 * - Tags (default): <|edit_intent|>low|medium|high|no_edit<|/edit_intent|>
 * - ShortName: N|L|M|H on the first line
 *
 * @param linesStream The stream of lines from the model response
 * @param tracer Logger for tracing
 * @param mode The parse mode (Tags or ShortName), defaults to Tags
 */
export declare function parseEditIntentFromStream(linesStream: AsyncIterable<string>, tracer: ILogger, mode?: EditIntentParseMode): Promise<ParseEditIntentResult>;
//# sourceMappingURL=editIntent.d.ts.map