///
import { IframeDriver } from "./iframeDriver";
declare const MessageReceivedEvent = "message";
declare const MessageSentEvent = "sent";
export interface IframeWorkspaceStatus {
projects: pxt.workspace.Project[];
editor?: pxt.editor.EditorSyncState;
controllerId?: string;
}
export interface IFrameWorkspaceHost {
saveProject(project: pxt.workspace.Project): Promise;
getWorkspaceProjects(): Promise;
resetWorkspace(): Promise;
onWorkspaceLoaded?(): Promise;
}
/**
* Manages communication with the editor iframe.
*/
export declare class EditorDriver extends IframeDriver {
iframe: HTMLIFrameElement;
host?: IFrameWorkspaceHost;
constructor(iframe: HTMLIFrameElement, host?: IFrameWorkspaceHost);
switchEditorLanguage(lang: "typescript" | "blocks" | "python"): Promise;
setLanguageRestriction(restriction: pxt.editor.LanguageRestriction): Promise;
startSimulator(): Promise;
stopSimulator(unload?: boolean): Promise;
restartSimulator(): Promise;
hideSimulator(): Promise;
showSimulator(): Promise;
setSimulatorFullscreen(on: boolean): Promise;
closeFlyout(): Promise;
unloadProject(): Promise;
saveProject(): Promise;
compile(): Promise;
undo(): Promise;
redo(): Promise;
setHighContrast(on: boolean): Promise;
showThemePicker(): Promise;
toggleHighContrast(): Promise;
toggleGreenScreen(): Promise;
toggleAccessibleBlocks(): Promise;
toggleSloMo(intervalSpeed?: number): Promise;
setSloMoEnabled(enabled: boolean, intervalSpeed?: number): Promise;
printProject(): Promise;
getInfo(): Promise;
newProject(options: pxt.editor.ProjectCreationOptions): Promise;
importProject(project: pxt.workspace.Project, filters?: pxt.editor.ProjectFilters, searchBar?: boolean): Promise;
importExternalProject(project: pxt.workspace.Project): Promise;
openHeader(headerId: string): Promise;
shareHeader(headerId: string, projectName: string): Promise;
startActivity(activityType: "tutorial" | "example" | "recipe", path: string, title?: string, previousProjectHeaderId?: string, carryoverPreviousCode?: boolean): Promise;
importTutorial(markdown: string): Promise;
pair(): Promise;
decompileToBlocks(ts: string, snippetMode?: boolean, layout?: pxt.editor.BlockLayout): Promise;
decompileToPython(ts: string): Promise;
renderXml(xml: string): Promise;
renderByBlockId(blockId: string): Promise;
getToolboxCategories(advanced?: boolean): Promise;
getBlockAsText(blockId: string): Promise;
runValidatorPlan(validatorPlan: pxt.blocks.ValidatorPlan, planLib: pxt.blocks.ValidatorPlan[]): Promise;
saveLocalProjectsToCloud(headerIds: string[]): Promise;
convertCloudProjectsToLocal(userId: string): Promise;
requestProjectCloudStatus(headerIds: string[]): Promise;
precacheTutorial(data: pxt.github.GHTutorialResponse): Promise;
setColorTheme(colorThemeId: string, savePreference: boolean): Promise;
addEventListener(event: typeof MessageSentEvent, handler: (ev: pxt.editor.EditorMessage) => void): void;
addEventListener(event: typeof MessageReceivedEvent, handler: (ev: pxt.editor.EditorMessage) => void): void;
addEventListener(event: "event", handler: (ev: pxt.editor.EditorMessageEventRequest) => void): void;
addEventListener(event: "simevent", handler: (ev: pxt.editor.EditorSimulatorEvent) => void): void;
addEventListener(event: "tutorialevent", handler: (ev: pxt.editor.EditorMessageTutorialEventRequest) => void): void;
addEventListener(event: "workspacesave", handler: (ev: pxt.editor.EditorWorkspaceSaveRequest) => void): void;
addEventListener(event: "workspaceevent", handler: (ev: pxt.editor.EditorWorkspaceEvent) => void): void;
addEventListener(event: "workspacereset", handler: (ev: pxt.editor.EditorWorkspaceSyncRequest) => void): void;
addEventListener(event: "workspacesync", handler: (ev: pxt.editor.EditorWorkspaceSyncRequest) => void): void;
addEventListener(event: "workspaceloaded", handler: (ev: pxt.editor.EditorWorkspaceSyncRequest) => void): void;
addEventListener(event: "workspacediagnostics", handler: (ev: pxt.editor.EditorWorkspaceDiagnostics) => void): void;
addEventListener(event: "editorcontentloaded", handler: (ev: pxt.editor.EditorContentLoadedRequest) => void): void;
addEventListener(event: "projectcloudstatus", handler: (ev: pxt.editor.EditorMessageProjectCloudStatus) => void): void;
addEventListener(event: "serviceworkerregistered", handler: (ev: pxt.editor.EditorMessageServiceWorkerRegisteredRequest) => void): void;
sendMessage(message: pxt.editor.EditorMessageRequest): Promise;
protected handleMessage(event: MessageEvent): void;
protected handleWorkspaceSync(event: pxt.editor.EditorWorkspaceSyncRequest | pxt.editor.EditorWorkspaceSaveRequest): Promise;
}
export {};