import { ContributionProvider, MaybePromise } from '@theia/core'; import { ChangeSetElement } from './change-set'; import { SerializableChangeSetElement } from './chat-model-serialization'; export declare const ChangeSetElementDeserializer: unique symbol; export interface ChangeSetElementDeserializer { readonly kind: string; deserialize(serialized: SerializableChangeSetElement, context: ChangeSetDeserializationContext): ChangeSetElement | Promise; } export interface ChangeSetDeserializationContext { chatSessionId: string; requestId: string; } export interface ChangeSetElementDeserializerContribution { registerDeserializers(registry: ChangeSetElementDeserializerRegistry): void; } export declare const ChangeSetElementDeserializerContribution: unique symbol; export interface ChangeSetElementDeserializerRegistry { register(deserializer: ChangeSetElementDeserializer): void; deserialize(serialized: SerializableChangeSetElement, context: ChangeSetDeserializationContext): MaybePromise; } export declare const ChangeSetElementDeserializerRegistry: unique symbol; export declare class ChangeSetElementDeserializerRegistryImpl implements ChangeSetElementDeserializerRegistry { protected deserializers: Map>; protected readonly changeSetElementDeserializerContributions: ContributionProvider; init(): void; register(deserializer: ChangeSetElementDeserializer): void; deserialize(serialized: SerializableChangeSetElement, context: ChangeSetDeserializationContext): MaybePromise; private createFallbackElement; } //# sourceMappingURL=change-set-element-deserializer.d.ts.map