import type { Mapping } from '../../../mapping/base';
import { Validator, type ValidityObject } from '../../../utilities/models/validator';
export interface RichTextMentionValidity extends ValidityObject {
}
type FlagNames<T> = T extends readonly (infer U)[] ? U : never;
export declare const baseValidityFlagNames: readonly ["duplicateMappingMentionHref", "missingMentionHrefValue", "mentionHrefNotValidUrl", "mentionHrefDoesNotMatchPattern", "missingPatternAttribute", "unsupportedPatternValue"];
/**
 * Validator for RichTextMention
 */
export declare class RichTextMentionValidator<ValidityFlagNames extends readonly string[] = typeof baseValidityFlagNames> extends Validator<typeof baseValidityFlagNames | ValidityFlagNames> {
    constructor(configValidityKeys: ValidityFlagNames);
    validate(mappings: Mapping<unknown>[], pattern: string | undefined): void;
    /**
     * @returns an object containing flags for various ways the configuation can be invalid
     */
    getValidity(): RichTextMentionValidity;
    /**
     * Sets a particular validity condition flag's value, e.g. "hasInvalidFooValue" = true
     */
    protected setConditionValue(name: FlagNames<typeof baseValidityFlagNames | ValidityFlagNames>, isInvalid: boolean): void;
    private validateMissingPattern;
    private validatePattern;
    private validateUniqueMentionHref;
    private validateNoMissingMentionHref;
    private validateHrefForUrl;
    private validateHrefForPattern;
    private isInvalidUrl;
    private isInvalidRegex;
}
export {};
