import { IConfigurationService } from '../../../platform/configuration/common/configurationService';
import { IEndpointProvider } from '../../../platform/endpoint/common/endpointProvider';
import { NextCursorLinePrediction } from '../../../platform/inlineEdits/common/dataTypes/nextCursorLinePrediction';
import { StatelessNextEditTelemetryBuilder } from '../../../platform/inlineEdits/common/statelessNextEditProvider';
import { ILanguageDiagnosticsService } from '../../../platform/languages/common/languageDiagnosticsService';
import { ILogger } from '../../../platform/log/common/logService';
import { IProxyModelsService } from '../../../platform/proxyModels/common/proxyModelsService';
import { IExperimentationService } from '../../../platform/telemetry/common/nullExperimentationService';
import { Result } from '../../../util/common/result';
import { CancellationToken } from '../../../util/vs/base/common/cancellation';
import { OffsetRange } from '../../../util/vs/editor/common/core/ranges/offsetRange';
import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';
import { PromptPieces } from '../common/promptCrafting';
export type CursorJumpPrediction = {
    readonly kind: 'sameFile';
    readonly lineNumber: number;
} | {
    readonly kind: 'differentFile';
    readonly filePath: string;
    readonly lineNumber: number;
};
export declare class XtabNextCursorPredictor {
    private readonly computeTokens;
    private readonly instaService;
    private readonly configService;
    private readonly expService;
    private readonly langDiagService;
    private readonly endpointProvider;
    private readonly proxyModelsService;
    private isDisabled;
    constructor(computeTokens: (text: string) => number, instaService: IInstantiationService, configService: IConfigurationService, expService: IExperimentationService, langDiagService: ILanguageDiagnosticsService, endpointProvider: IEndpointProvider, proxyModelsService: IProxyModelsService);
    determineEnablement(supportsNextCursorLinePrediction?: boolean): NextCursorLinePrediction | undefined;
    predictNextCursorPosition(promptPieces: PromptPieces, parentTracer: ILogger, telemetryBuilder: StatelessNextEditTelemetryBuilder | undefined, cancellationToken: CancellationToken): Promise<Result<CursorJumpPrediction, Error>>;
    private resolveEndpoint;
    private determineModelName;
    private determineLintOptions;
    parseResponse(rawResponse: string, keptRange: OffsetRange): Result<CursorJumpPrediction, Error>;
    private parseSameFileLineNumber;
}
//# sourceMappingURL=xtabNextCursorPredictor.d.ts.map