import { Event } from "../../../base/common/event.js";
import { Disposable } from "../../../base/common/lifecycle.js";
import { Action2 } from "../../../platform/actions/common/actions.js";
import { IContextKeyService } from "../../../platform/contextkey/common/contextkey.service.js";
import { ServicesAccessor } from "../../../platform/instantiation/common/instantiation.js";
import { ITelemetryService } from "../../../platform/telemetry/common/telemetry.service.js";
import { IInlineCompletionsService } from "./inlineCompletionsService.service.js";
export declare class InlineCompletionsService extends Disposable implements IInlineCompletionsService {
    private _contextKeyService;
    private _telemetryService;
    readonly _serviceBrand: undefined;
    private _onDidChangeIsSnoozing;
    readonly onDidChangeIsSnoozing: Event<boolean>;
    private static readonly SNOOZE_DURATION;
    private _snoozeTimeEnd;
    get snoozeTimeLeft(): number;
    private _timer;
    constructor(_contextKeyService: IContextKeyService, _telemetryService: ITelemetryService);
    snooze(durationMs?: number): void;
    setSnoozeDuration(durationMs: number): void;
    isSnoozing(): boolean;
    cancelSnooze(): void;
    private _reportSnooze;
}
export declare class SnoozeInlineCompletion extends Action2 {
    static ID: string;
    constructor();
    run(accessor: ServicesAccessor, ...args: unknown[]): Promise<void>;
    private getDurationFromUser;
}
export declare class CancelSnoozeInlineCompletion extends Action2 {
    static ID: string;
    constructor();
    run(accessor: ServicesAccessor): Promise<void>;
}
