import type { Plugin } from "unified";
import type { Data, Parent, PhrasingContent, Root } from "mdast";
interface MarkData extends Data {
}
interface Mark extends Parent {
    /**
     * Node type of mdast Mark.
     */
    type: "mark";
    /**
     * Children of paragraph.
     */
    children: PhrasingContent[];
    /**
     * Data associated with the mdast paragraph.
     */
    data?: MarkData | undefined;
}
declare module "mdast" {
    interface PhrasingContentMap {
        mark: Mark;
    }
    interface RootContentMap {
        mark: Mark;
    }
}
type Key = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z";
type Dictionary = Partial<Record<Key, string>>;
interface Properties {
    [PropertyName: string]: boolean | number | string | null | undefined | Array<string | number>;
}
type TagNameFunction = (color?: string) => string;
type ClassNameFunction = (color?: string) => string[];
type PropertyFunction = (color?: string) => Omit<Properties, "className"> & {
    className?: never;
};
export type FlexibleMarkerOptions = {
    dictionary?: Dictionary;
    markerTagName?: string | TagNameFunction;
    markerClassName?: string | ClassNameFunction;
    markerProperties?: PropertyFunction;
    equalityOperator?: string;
    actionForEmptyContent?: "keep" | "remove" | "mark";
};
export declare const REGEX: RegExp;
export declare const REGEX_GLOBAL: RegExp;
export declare const REGEX_STARTING: RegExp;
export declare const REGEX_STARTING_GLOBAL: RegExp;
export declare const REGEX_ENDING: RegExp;
export declare const REGEX_ENDING_GLOBAL: RegExp;
export declare const REGEX_EMPTY: RegExp;
export declare const REGEX_EMPTY_GLOBAL: RegExp;
/**
 *
 * a utility like "clsx" package
 */
export declare function clsx<T>(arr: (T | false | null | undefined | 0)[]): T[];
/**
 *
 * This plugin turns ==content== into a <mark> element with customizable classification
 *
 * for example:
 *
 * Here is ==marked text with default color==
 * Here is =r=marked text with red classification==
 *
 */
declare const plugin: Plugin<[FlexibleMarkerOptions?], Root>;
export default plugin;
//# sourceMappingURL=index.d.ts.map