import * as vscode from 'vscode'; export interface Ctor { new (): T; } export declare function mock(): Ctor; export declare function mockTextDocument(uri: vscode.Uri, languageId: string, source: string[]): { readonly uri: vscode.Uri; readonly languageId: string; readonly lineCount: number; readonly fileName: string; getText(): string; validatePosition(p: vscode.Position): vscode.Position; validateRange(r: vscode.Range): vscode.Range; lineAt(line: number | vscode.Position): vscode.TextLine; offsetAt(pos: vscode.Position): number; readonly isUntitled: boolean; readonly version: number; readonly isDirty: boolean; readonly isClosed: boolean; save(): Thenable; readonly eol: vscode.EndOfLine; positionAt(offset: number): vscode.Position; getWordRangeAtPosition(position: vscode.Position, regex?: RegExp | undefined): vscode.Range | undefined; }; export declare function withTestNotebook(uri: vscode.Uri, cells: [ source: string[], lang: string, kind: vscode.NotebookCellKind, output?: vscode.NotebookCellOutput[], metadata?: any ][], callback: (notebookDocument: vscode.NotebookDocument) => void): void; export declare const defaultNotebookTestTimeout = 60000; export declare const PYTHON_LANGUAGE = "python"; export declare const MARKDOWN_LANGUAGE = "markdown"; export declare const JUPYTER_LANGUAGE = "jupyter"; export declare enum CellOutputMimeTypes { error = "application/vnd.code.notebook.error", stderr = "application/vnd.code.notebook.stderr", stdout = "application/vnd.code.notebook.stdout" } export declare const EXTENSION_ROOT_DIR_FOR_TESTS: string; export declare function isInsiders(): boolean; export declare function swallowExceptions(cb: Function): void; export declare function selectCell(notebook: vscode.NotebookDocument, start: number, end: number): Promise; export declare function isPromise(v: any): v is Promise; export declare function sleep(milliseconds: number): Promise; export declare function chainWithPendingUpdates(document: vscode.NotebookDocument, update: (edit: vscode.WorkspaceEdit) => void | Promise): Promise; export declare function clearPendingChainedUpdatesForTests(): void; export declare function insertMarkdownCell(source: string, options?: { index?: number; }): Promise; export declare function insertCodeCell(source: string, options?: { language?: string; index?: number; }): Promise; export declare function deleteCell(index?: number): Promise; export declare function deleteAllCellsAndWait(): Promise; export declare function createTemporaryFile(options: { templateFile: string; dir: string; }): Promise<{ file: string; } & vscode.Disposable>; export declare function createTemporaryNotebook(templateFile: string, disposables: vscode.Disposable[], kernelName?: string): Promise; export declare function canRunNotebookTests(): boolean; export declare function shutdownAllNotebooks(): Promise; export declare function disposeAllDisposables(disposables?: vscode.Disposable[]): void; export declare function closeActiveWindows(disposables?: vscode.Disposable[]): Promise; export declare function closeActiveNotebooks(): Promise; export declare function closeNotebooksAndCleanUpAfterTests(disposables?: vscode.Disposable[]): Promise; export declare function clearPendingTimers(): void; export declare function waitForCondition(condition: () => Promise, timeoutMs: number, errorMessage: string | (() => string), intervalTimeoutMs?: number): Promise; export declare function closeNotebooks(disposables?: vscode.Disposable[]): Promise; export declare function createEmptyPythonNotebook(disposables?: vscode.Disposable[]): Promise; export declare function workAroundVSCodeNotebookStartPages(): Promise; export declare function waitForCellExecutionToComplete(cell: vscode.NotebookCell): Promise; export declare function waitForOutputs(cell: vscode.NotebookCell, expectedNumberOfOutputs: number, timeout?: number): Promise; export declare function focusCell(cell: vscode.NotebookCell): Promise; export declare function waitForDiagnostics(uri: vscode.Uri, timeout?: number): Promise; export declare function waitForHover(uri: vscode.Uri, pos: vscode.Position, timeout?: number): Promise; export declare function assertHasTextOutputInVSCode(cell: vscode.NotebookCell, text: string, index?: number, isExactMatch?: boolean): boolean; export declare function waitForTextOutput(cell: vscode.NotebookCell, text: string, index?: number, isExactMatch?: boolean, timeout?: number): Promise; export declare function waitForCellChange(timeout?: number): Promise; export declare function saveActiveNotebook(): Promise; export declare function noop(): void; export declare function traceInfo(...args: any[]): void; export declare function captureScreenShot(fileNamePrefix: string): Promise; export declare function captureOutputMessages(): Promise; export declare const NotebookCellScheme = "vscode-notebook-cell"; export declare const InteractiveInputScheme = "vscode-interactive-input"; export declare const InteractiveScheme = "vscode-interactive"; export declare const PYTHON: { scheme: string; language: string; }[]; export declare class LanguageServer implements vscode.Disposable { private disposables; constructor(disposables: vscode.Disposable[]); dispose(): Promise; } export declare type MiddlewareType = 'hiding' | 'notebook'; export declare function createLanguageServer(outputChannel: string, middlewareType: MiddlewareType, shouldProvideIntellisense: (uri: vscode.Uri) => boolean, notebookHeader: () => string): Promise;