import { PortionSelector } from './article_portions.js'; import { ActionTarget, TextAstActionDirective, TextAstReference } from '../text_parsers/ast.js'; import { FragmentPosition } from '../text_parsers/fragments.js'; export type ActionReplacement = { type: "text"; text: string; } | { type: "following_table"; }; export type ActionCitation = { type: "citation"; text: string; sourcePosition: FragmentPosition; }; export type ActionTableTarget = { type: "table"; rowIndex?: number; columnIndex?: number; }; export type ActionInsertLayout = "block" | "inline"; export type ActionReplacementLayout = ActionInsertLayout; export type ActionTargetScope = { type: "tail_after_target"; unit?: "phrase" | "alinéa" | "article"; }; type ActionOperationTarget = { targetType?: ActionTarget; reference?: TextAstReference; portionSelectors?: PortionSelector[]; }; type ActionDirectiveCommon = { applicabilityDate?: string; sourcePosition: FragmentPosition; sourceText: string; }; export type ActionOperation = (ActionOperationTarget & { kind: "insert_after" | "insert_before"; targetText: string; insertText: string; insertLayout?: ActionInsertLayout; citation?: ActionCitation; tableTarget?: ActionTableTarget; }) | (ActionOperationTarget & { kind: "replace_portion"; replacementText: string; replacement: ActionReplacement; replacementLayout?: ActionReplacementLayout; citation?: ActionCitation; tableTarget?: ActionTableTarget; }) | (ActionOperationTarget & { kind: "replace"; targetText: string; replacementText: string; replacement: ActionReplacement; targetScope?: ActionTargetScope; tableTarget?: ActionTableTarget; }) | (ActionOperationTarget & { kind: "delete"; targetText: string; targetScope?: ActionTargetScope; occurrenceIndex?: number; tableTarget?: ActionTableTarget; }) | (ActionOperationTarget & { kind: "delete_portion"; tableTarget?: ActionTableTarget; }) | (ActionOperationTarget & { kind: "delete_article"; }); export type ResolvedActionDirective = (ActionDirectiveCommon & { kind: "insert_after" | "insert_before"; targetType: ActionTarget; reference: TextAstReference; portionSelectors: PortionSelector[]; targetText: string; insertText: string; insertLayout?: ActionInsertLayout; citation?: ActionCitation; tableTarget?: ActionTableTarget; }) | (ActionDirectiveCommon & { kind: "replace_portion"; targetType: ActionTarget; reference: TextAstReference; portionSelectors: PortionSelector[]; replacementText: string; replacement: ActionReplacement; replacementLayout?: ActionReplacementLayout; citation?: ActionCitation; tableTarget?: ActionTableTarget; }) | (ActionDirectiveCommon & { kind: "replace"; targetType: ActionTarget; reference: TextAstReference; portionSelectors: PortionSelector[]; targetText: string; replacementText: string; replacement: ActionReplacement; targetScope?: ActionTargetScope; tableTarget?: ActionTableTarget; }) | (ActionDirectiveCommon & { kind: "delete"; targetType: ActionTarget; reference: TextAstReference; portionSelectors: PortionSelector[]; targetText: string; targetScope?: ActionTargetScope; occurrenceIndex?: number; tableTarget?: ActionTableTarget; }) | (ActionDirectiveCommon & { kind: "delete_portion"; targetType: ActionTarget; reference: TextAstReference; portionSelectors: PortionSelector[]; tableTarget?: ActionTableTarget; }) | (ActionDirectiveCommon & { kind: "delete_article"; targetType: "article"; reference: TextAstReference; portionSelectors: PortionSelector[]; }) | (ActionDirectiveCommon & { kind: "compound"; targetType: ActionTarget; reference: TextAstReference; portionSelectors: PortionSelector[]; operations: ActionOperation[]; }); /** * @deprecated Use ResolvedActionDirective for resolved, projection-ready * directives. TextAstActionDirective is the generic parser AST. */ export type ActionDirective = ResolvedActionDirective; export declare function extractActionDirectiveAstsFromText(text: string): TextAstActionDirective[]; export declare function resolveActionDirectivesFromText(text: string): ActionDirective[]; /** * @deprecated Use resolveActionDirectivesFromText. */ export declare const extractActionDirectivesFromText: typeof resolveActionDirectivesFromText; export declare function resolveActionDirectivesFromHtml(html: string): ActionDirective[]; /** * @deprecated Use resolveActionDirectivesFromHtml. */ export declare const extractActionDirectivesFromHtml: typeof resolveActionDirectivesFromHtml; export {};