/// <reference path="../../../../src/@types/@kano/common/index.d.ts" />
import { IToolboxWhitelist } from '../editor/toolbox.js';
import { Editor } from '../editor/editor.js';
import { Engine } from './engine.js';
import { ChallengeBase } from './base.js';
export declare function registerChallengeEngine(id: string, engine: typeof Engine): void;
export interface IChallengeData {
    id: string;
    name: string;
    version?: string;
    steps: any[];
    defaultApp?: string;
    partsWhitelist?: IToolboxWhitelist;
    whitelist?: IToolboxWhitelist;
    flyoutMode?: boolean;
}
/**
 * A Stepp-by-step controller Code editor
 * [[include:challenge-widgets.md]]
 */
export declare class Challenge extends ChallengeBase {
    editor: Editor;
    data: IChallengeData;
    engine?: Engine;
    private subscriptions;
    private _onDidRequestNextChallenge;
    readonly onDidRequestNextChallenge: import("@kano/common/index.js").IEvent<void>;
    constructor(editor: Editor, challengeData: IChallengeData);
    onInject(): void;
    reset(): void;
    start(): void;
    stop(): void;
    setData(data: any): void;
    dispose(): void;
}
