/// <reference path="../../../../src/@types/@kano/common/index.d.ts" />
import ChallengeEngine from 'challenge-engine/definition.js';
import Editor from '../editor/editor.js';
import { IEditorWidget } from '../editor/widget/widget.js';
import { IDisposable, EventEmitter } from '@kano/common/index.js';
import { IStepHelper } from './helper.js';
export declare class Engine extends ChallengeEngine {
    protected editor: Editor;
    widgets: Map<string, IEditorWidget>;
    protected subscriptions: IDisposable[];
    protected helpers: IStepHelper[];
    protected stepHelpers: IStepHelper[];
    stepsMappings: Map<number, number>;
    protected aliases: IDisposable[];
    protected _onDidRequestNextChallenge: EventEmitter<void>;
    readonly onDidRequestNextChallenge: import("@kano/common/index.js").IEvent<void>;
    private _onDidUpdateStepIndex;
    readonly onDidUpdateStepIndex: import("@kano/common/index.js").IEvent<number>;
    constructor(editor: Editor);
    _updateStep(): void;
    onEnd(): void;
    registerAlias(alias: string, target: string): void;
    registerHelper(helper: IStepHelper): void;
    getExpandedStepIndex(sourceIndex: number): number;
    _expandStepsWithMappings(): {
        steps: any;
        mappings: Map<any, any>;
    };
    dispose(): void;
}
