/**
 * This module implements a map of the different marks that appear in a value to stringify.
 *
 * With the make function, you can define your own instances if the provided ones don't suit your
 * needs.
 */
import { MInspectable, MTypes } from '@parischap/effect-lib';
import { Equal, Equivalence, HashMap, Pipeable } from 'effect';
/**
 * Module tag
 *
 * @category Models
 */
export declare const moduleTag = "@parischap/pretty-print/MarkMap/";
declare const _TypeId: unique symbol;
type _TypeId = typeof _TypeId;
declare namespace Mark {
    interface Type {
        /** The text to be displayed for this mark */
        readonly text: string;
        /**
         * The name of the part that this mark belongs to. It will be used to determine the style to
         * apply (see StyleMap.ts).
         */
        readonly partName: string;
    }
}
declare namespace Marks {
    interface Type extends HashMap.HashMap<string, Mark.Type> {
    }
}
/**
 * Interface that represents a MarkMap
 *
 * @category Models
 */
export interface Type extends Equal.Equal, MInspectable.Inspectable, Pipeable.Pipeable {
    /** Id of this MarkMap instance. Useful for equality and debugging. */
    readonly id: string;
    /** Map of the different marks that appear in a value to stringify */
    readonly marks: Marks.Type;
    /** @internal */
    readonly [_TypeId]: _TypeId;
}
/**
 * Type guard
 *
 * @category Guards
 */
export declare const has: (u: unknown) => u is Type;
/**
 * Equivalence
 *
 * @category Equivalences
 */
export declare const equivalence: Equivalence.Equivalence<Type>;
/**
 * Constructor
 *
 * @category Constructors
 */
export declare const make: (params: MTypes.Data<Type>) => Type;
/**
 * Returns the `id` property of `self`
 *
 * @category Destructors
 */
export declare const id: MTypes.OneArgFunction<Type, string>;
/**
 * Returns the `marks` property of `self`
 *
 * @category Destructors
 */
export declare const marks: MTypes.OneArgFunction<Type, Marks.Type>;
/**
 * Default MarkMap instance
 *
 * @category Instances
 */
export declare const utilInspectLike: Type;
export {};
//# sourceMappingURL=MarkMap.d.ts.map