/// 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 {};