import { ExtendedNode } from './node.cjs'; import { TurnishOptions } from './index.cjs'; export type RuleFilterFunction = (node: ExtendedNode, options: TurnishOptions) => boolean; export type RuleFilter = string | string[] | RuleFilterFunction; type RuleReplacementFunction = (...args: any[]) => string; export interface Rule { filter?: RuleFilter; replacement: RuleReplacementFunction | ((content: string, node: any, options: TurnishOptions, previousNode?: any) => string); references?: string[]; urlReferenceIdMap?: Map; append?: (options: TurnishOptions) => string; } export declare class Rules { options: TurnishOptions; private _keep; private _remove; blankRule: Rule; keepReplacement: RuleReplacementFunction; markdownIncludingHtmlReplacement: RuleReplacementFunction; defaultRule: Rule; array: Rule[]; constructor(options: TurnishOptions); beginConversion(): () => void; add(key: string, rule: Rule): void; keep(filter: RuleFilter): void; remove(filter: RuleFilter): void; forNode(node: ExtendedNode): Rule; private isUnsupportedElement; forEach(fn: (rule: Rule, index: number) => void): void; } export {};