import * as Ajv from '@theia/core/shared/ajv'; import { JsonSchemaContribution, JsonSchemaDataStore, JsonSchemaRegisterContext } from '@theia/core/lib/browser/json-schema-store'; import { Emitter } from '@theia/core/lib/common'; import { IJSONSchema } from '@theia/core/lib/common/json-schema'; import URI from '@theia/core/lib/common/uri'; import { ProblemMatcherRegistry } from './task-problem-matcher-registry'; import { TaskDefinitionRegistry } from './task-definition-registry'; import { TaskServer } from '../common'; import { WorkspaceService } from '@theia/workspace/lib/browser'; import { JSONObject } from '@theia/core/shared/@lumino/coreutils'; export declare class TaskSchemaUpdater implements JsonSchemaContribution { protected readonly jsonSchemaData: JsonSchemaDataStore; protected readonly problemMatcherRegistry: ProblemMatcherRegistry; protected readonly taskDefinitionRegistry: TaskDefinitionRegistry; protected readonly taskServer: TaskServer; protected readonly workspaceService: WorkspaceService; protected readonly onDidChangeTaskSchemaEmitter: Emitter; readonly onDidChangeTaskSchema: import("@theia/core/lib/common").Event; protected readonly uri: URI; protected init(): void; registerSchemas(context: JsonSchemaRegisterContext): void; readonly update: () => Promise; protected doUpdate(): void; validate(data: any): boolean; protected doValidate: Ajv.ValidateFunction | undefined; /** * Adds given task schema to `taskConfigurationSchema` as `oneOf` subschema. * Replaces existed subschema by given schema if the corresponding `$id` properties are equal. * * Note: please provide `$id` property for subschema to have ability remove/replace it. * @param schema subschema for adding to `taskConfigurationSchema` */ addSubschema(schema: IJSONSchema): void; /** * Removes task subschema from `taskConfigurationSchema`. * * @param arg `$id` property of subschema */ removeSubschema(arg: string): void; /** * Removes task subschema from `customSchemas`, use `update()` to apply the changes for `taskConfigurationSchema`. * * @param arg `$id` property of subschema * @returns `true` if subschema was removed, `false` otherwise */ protected doRemoveSubschema(arg: string): boolean; /** Returns an array of task types that are registered, including the default types */ getRegisteredTaskTypes(): Promise; private updateSchemasForRegisteredTasks; /** Returns the task's JSON schema */ getTaskSchema(): IJSONSchema & { default: JSONObject; }; /** Gets the most up-to-date names of problem matchers from the registry and update the task schema */ private updateProblemMatcherNames; private updateSupportedTaskTypes; } //# sourceMappingURL=task-schema-updater.d.ts.map