import { Disposable, Event } from '@opensumi/ide-core-browser';
import { BinaryBuffer } from '@opensumi/ide-core-common';
import { IResolvedWalkthroughStep, IWalkthrough } from '../common';
import { IExtensionContributions, IExtensionWalkthroughStep } from '../common/vscode';
export declare class WalkthroughsService extends Disposable {
    private readonly extensionManageService;
    private readonly commandService;
    private readonly preferenceService;
    private readonly fileSystem;
    private readonly contextKeyService;
    private readonly eventBus;
    private readonly logger;
    private readonly _onDidOpenWalkthrough;
    readonly onDidOpenWalkthrough: Event<string>;
    private readonly _onDidAddWalkthrough;
    readonly onDidAddWalkthrough: Event<IWalkthrough>;
    private readonly _onDidProgressStep;
    readonly onDidProgressStep: Event<IResolvedWalkthroughStep>;
    private stepProgress;
    private readonly sessionEvents;
    private readonly categoryVisibilityContextKeys;
    private readonly stepCompletionContextKeyExpressions;
    private readonly stepCompletionContextKeys;
    private readonly completionListeners;
    private readonly contributions;
    private readonly steps;
    private readonly extensionSteps;
    constructor();
    /**
     * 注册各种 completionEvents 的监听
     * 可能来自 command 命令调用完成后发出、onView 视图切换后发出等
     */
    private initCompletionEventListeners;
    /**
     * 处理 completionEvents
     * 该事件主要用于处理当用户做了某些操作之后给当前 step 设置成 completion 的状态（也就是左边的 checkbox 打勾勾）
     */
    private registerDoneListeners;
    private getStep;
    private registerCompletionListener;
    private registerWalkthrough;
    private getStepProgress;
    progressByEvent(event: string): void;
    progressStep(id: string): void;
    openWalkthroughEditor(id: string): void;
    getWalkthrough(id: string): IWalkthrough | undefined;
    getStepsByExtension(id: string): IExtensionWalkthroughStep | undefined;
    getWalkthroughs(): IWalkthrough[];
    getFileContent(extensionId: string, uri: string): Promise<BinaryBuffer>;
    registerExtensionWalkthroughContributions(extensionId: string, walkthrough: Exclude<IExtensionContributions['walkthroughs'], undefined>[number]): Promise<void>;
}
//# sourceMappingURL=walkthroughs.service.d.ts.map