import { Matcher, MatcherConfig } from "./matcher";
import { MentionServices } from "../autolinker";
import { Match } from "../match/match";
/**
 * @class Autolinker.matcher.Mention
 * @extends Autolinker.matcher.Matcher
 *
 * Matcher to find/replace username matches in an input string.
 */
export declare class MentionMatcher extends Matcher {
    /**
     * @cfg {'twitter'/'instagram'/'soundcloud'} protected
     *
     * The name of service to link @mentions to.
     *
     * Valid values are: 'twitter', 'instagram', or 'soundcloud'
     */
    protected serviceName: MentionServices;
    /**
     * Hash of regular expression to match username handles. Example match:
     *
     *     @asdf
     *
     * @private
     * @property {Object} matcherRegexes
     */
    protected readonly matcherRegexes: {
        [key: string]: RegExp;
    };
    /**
     * The regular expression to use to check the character before a username match to
     * make sure we didn't accidentally match an email address.
     *
     * For example, the string "asdf@asdf.com" should not match "@asdf" as a username.
     *
     * @private
     * @property {RegExp} nonWordCharRegex
     */
    protected readonly nonWordCharRegex: RegExp;
    /**
     * @method constructor
     * @param {Object} cfg The configuration properties for the Match instance,
     *   specified in an Object (map).
     */
    constructor(cfg: MentionMatcherConfig);
    /**
     * @inheritdoc
     */
    parseMatches(text: string): Match[];
}
export interface MentionMatcherConfig extends MatcherConfig {
    serviceName: MentionServices;
}
