import { ServicesAccessor } from '../../../../../../util/vs/platform/instantiation/common/instantiation';
import { IPosition, TextDocumentContents, TextDocumentIdentifier } from '../textDocument';
import { CopilotCompletion } from './copilotCompletion';
import { ResultType } from './resultType';
export declare const ICompletionsLastGhostText: import("../../../../../../util/common/services").ServiceIdentifier<ICompletionsLastGhostText>;
export interface ICompletionsLastGhostText {
    readonly _serviceBrand: undefined;
    position: IPosition | undefined;
    uri: string | undefined;
    shownCompletions: CopilotCompletion[];
    index: number | undefined;
    totalLength: number | undefined;
    partiallyAcceptedLength: number | undefined;
    linesLeft: number | undefined;
    linesAccepted: number;
    lastLineAcceptedLength: number | undefined;
    resetState(): void;
    setState(document: TextDocumentIdentifier, position: IPosition): void;
    resetPartialAcceptanceState(): void;
}
export declare class LastGhostText implements ICompletionsLastGhostText {
    #private;
    _serviceBrand: undefined;
    index: number | undefined;
    totalLength: number | undefined;
    partiallyAcceptedLength: number | undefined;
    linesLeft: number | undefined;
    linesAccepted: number;
    lastLineAcceptedLength: number | undefined;
    get position(): IPosition | undefined;
    get shownCompletions(): CopilotCompletion[];
    get uri(): string | undefined;
    resetState(): void;
    setState({ uri }: TextDocumentIdentifier, position: IPosition): void;
    resetPartialAcceptanceState(): void;
}
export declare function rejectLastShown(accessor: ServicesAccessor, offset?: number): void;
export declare function setLastShown(accessor: ServicesAccessor, document: TextDocumentContents, position: IPosition, resultType: ResultType): number | undefined;
export declare function handleGhostTextShown(accessor: ServicesAccessor, cmp: CopilotCompletion): void;
/**
 * Handles full acceptance of ghost text completions.
 * This method is primarily used by VS Code for explicit full acceptances.
 */
export declare function handleGhostTextPostInsert(accessor: ServicesAccessor, cmp: CopilotCompletion): void;
export declare function handlePartialGhostTextPostInsert(accessor: ServicesAccessor, cmp: CopilotCompletion, acceptedLength: number): void;
//# sourceMappingURL=last.d.ts.map