import { AttributeMap } from '@typewriter/document';
import { Editor } from '../Editor';
export type Replacement = [RegExp, (captured: string, attr: AttributeMap) => AttributeMap];
export type TextReplacement = [RegExp, (captured: string) => string];
export type Handler = (editor?: Editor, index?: number, prefix?: string, wholeText?: string) => void;
/**
 * A list of [ RegExp, Function ] tuples to convert text into a formatted line with the attributes returned by the
 * function. The function's argument will be the captured text from the regular expression.
 */
export declare const lineReplacements: Replacement[];
/**
 * A list of [ RegExp, Function ] tuples to convert text into formatted text with the attributes returned by the
 * function. The function's argument will be the captured text from the regular expression.
 */
export declare const markReplacements: Replacement[];
export declare const linkReplacements: Replacement[];
/**
 * A list of [ RegExp, Function ] tuples to convert text into another string of text which is returned by the function.
 * The function's argument will be the captured text from the regular expression.
 */
export declare const textReplacements: TextReplacement[];
/**
 * Allow text representations to format a line
 */
export declare function lineReplace(editor: Editor, index: number, prefix: string): boolean;
export declare function linkReplace(editor: Editor, index: number, prefix: string): boolean;
export declare function markReplace(editor: Editor, index: number, prefix: string, wholeText: string): boolean;
export declare function textReplace(editor: Editor, index: number, prefix: string): boolean;
export declare const defaultHandlers: (typeof lineReplace)[];
export declare function smartEntry(handlers?: Handler[]): (editor: Editor) => {
    destroy(): void;
};
