import { Event } from "../../../base/common/event.js"; import { IJSONSchema } from "../../../base/common/jsonSchema.js"; import { DisposableStore, IDisposable } from "../../../base/common/lifecycle.js"; export declare const Extensions: { JSONContribution: string; }; export interface ISchemaContributions { schemas: { [id: string]: IJSONSchema; }; } export interface IJSONContributionRegistry { readonly onDidChangeSchema: Event; readonly onDidChangeSchemaAssociations: Event; /** * Register a schema to the registry. */ registerSchema(uri: string, unresolvedSchemaContent: IJSONSchema, store?: DisposableStore): void; registerSchemaAssociation(uri: string, glob: string): IDisposable; /** * Notifies all listeners that the content of the given schema has changed. * @param uri The id of the schema */ notifySchemaChanged(uri: string): void; /** * Get all schemas */ getSchemaContributions(): ISchemaContributions; getSchemaAssociations(): { [uri: string]: string[]; }; /** * Gets the (compressed) content of the schema with the given schema ID (if any) * @param uri The id of the schema */ getSchemaContent(uri: string): string | undefined; /** * Returns true if there's a schema that matches the given schema ID * @param uri The id of the schema */ hasSchemaContent(uri: string): boolean; }