export interface ApplyReplaceInput { readonly source: string; readonly search: string; readonly replace: string; } export interface ApplyEditOk { readonly ok: true; readonly content: string; readonly matchKind: "exact" | "trailing-ws" | "ellipsis"; } export type ApplyEditErrReason = "no-match" | "multiple-match"; export interface ApplyEditErr { readonly ok: false; readonly reason: ApplyEditErrReason; readonly matchCount: number; } export type ApplyEditResult = ApplyEditOk | ApplyEditErr; export declare function applyReplace(input: ApplyReplaceInput): ApplyEditResult; export interface ReplaceEdit { readonly op: "replace"; readonly search: string; readonly replace: string; } export interface CreateEdit { readonly op: "create"; readonly content: string; } export type Edit = ReplaceEdit | CreateEdit; export interface ApplyEditsError { readonly index: number; readonly reason: ApplyEditErrReason; readonly matchCount: number; readonly search: string; } export interface ApplyEditsResult { readonly content: string; readonly errors: readonly ApplyEditsError[]; } export declare function applyEdits(seed: string, edits: readonly Edit[]): ApplyEditsResult;