///
import URI from '@devpodio/core/lib/common/uri';
import { FileSystem } from '@devpodio/filesystem/lib/common';
export declare class MonacoSnippetSuggestProvider implements monaco.modes.ISuggestSupport {
protected readonly filesystem: FileSystem;
protected readonly snippets: Map;
protected readonly pendingSnippets: Map[]>;
provideCompletionItems(model: monaco.editor.ITextModel): Promise;
resolveCompletionItem(_: monaco.editor.ITextModel, __: monaco.Position, item: monaco.modes.ISuggestion): monaco.modes.ISuggestion;
protected loadSnippets(scope: string): Promise;
fromURI(uri: string | URI, options: SnippetLoadOptions): Promise;
/**
* should NOT throw to prevent load erros on suggest
*/
protected loadURI(uri: string | URI, options: SnippetLoadOptions): Promise;
fromJSON(snippets: JsonSerializedSnippets | undefined, { language, source }: SnippetLoadOptions): void;
protected parseSnippets(snippets: JsonSerializedSnippets | undefined, accept: (name: string, snippet: JsonSerializedSnippet) => void): void;
push(...snippets: Snippet[]): void;
}
export interface SnippetLoadOptions {
language?: string | string[];
source: string;
}
export interface JsonSerializedSnippets {
[name: string]: JsonSerializedSnippet | {
[name: string]: JsonSerializedSnippet;
};
}
export interface JsonSerializedSnippet {
body: string | string[];
scope: string;
prefix: string;
description: string;
}
export declare namespace JsonSerializedSnippet {
function is(obj: Object | undefined): obj is JsonSerializedSnippet;
}
export interface Snippet {
readonly scopes: string[];
readonly name: string;
readonly prefix: string;
readonly description: string;
readonly body: string;
readonly source: string;
}
export declare class MonacoSnippetSuggestion implements monaco.modes.ISuggestion {
protected readonly snippet: Snippet;
readonly label: string;
readonly detail: string;
readonly sortText: string;
readonly noAutoAccept = true;
readonly type: 'snippet';
readonly snippetType: 'textmate';
insertText: string;
documentation?: monaco.IMarkdownString;
constructor(snippet: Snippet);
protected resolved: boolean;
resolve(): MonacoSnippetSuggestion;
}
//# sourceMappingURL=monaco-snippet-suggest-provider.d.ts.map