import { type Notifier, type Subscriber } from '@ni/fast-element'; import { FoundationElement } from '@ni/fast-foundation'; import type { MappingConfig } from './models/mapping-config'; import type { RichTextMentionValidator, RichTextMentionValidity } from './models/mention-validator'; import { MentionInternals, type MentionInternalsOptions } from './models/mention-internals'; import { Mapping } from '../../mapping/base'; /** * The base class for Mention configuration */ export declare abstract class RichTextMention extends FoundationElement implements Subscriber { /** * @internal */ readonly mentionInternals: MentionInternals; /** * A regex used to extract user ID from user key (url) while parsing and serializing a markdown. */ pattern?: string; /** * @public */ buttonLabel?: string; /** @internal */ mappingNotifiers: Notifier[]; /** @internal */ mappingElements: Mapping[]; /** * @public */ checkValidity(): boolean; /** * @public */ get validity(): RichTextMentionValidity; /** * @internal */ emitMentionUpdate(filter: string): void; /** * @internal */ handleChange(source: unknown, args: unknown): void; protected abstract getObservedMappingProperty(): string[]; protected abstract getMentionInternalsOptions(): MentionInternalsOptions; protected abstract createMappingConfig(mapping: Mapping): MappingConfig; private getMappingConfigs; private updateMappingConfigs; private mappingElementsChanged; private patternChanged; private buttonLabelChanged; private removeMappingElementObservers; private observeMappingElements; }