import { Act, type TypeAct } from "../commons/Act";
import { DateAct } from "../commons/DateAct";
import { Place } from "../commons/Place";
import type { ObjeRecord } from "../commons/ObjeRecord";
import type { Person } from "../commons/Person";
import { ActMediaEdit } from "./ActMediaEdit";
import { AudioInterviewActEdit } from "./AudioInterviewActEdit";
import { NotesEdit } from "./NotesEdit";
/**
 * API d’édition cohérente autour d’un {@link Act} existant (mutation in-place).
 */
export declare class ActEdit {
    private readonly target;
    constructor(target: Act);
    get value(): Act;
    setType(type: TypeAct): this;
    setIndis(ids: readonly number[]): this;
    setDateAct(date: DateAct | null): this;
    setSdateAct(sdate: DateAct | null): this;
    /** Remplace le lieu ; `null` efface le lieu attaché à l’acte. */
    setPlace(place: Place | null): this;
    setEvenDescription(text: string | null): this;
    setEvenTypeLabel(label: string | null): this;
    setEventPhrases(phrases: readonly string[]): this;
    clearEventPhrases(): this;
    appendEventPhrase(phrase: string): this;
    setPreservedPrefix(lines: readonly string[]): this;
    appendPreservedPrefixLine(line: string): this;
    clearPreservedPrefix(): this;
    setPreservedSuffix(lines: readonly string[]): this;
    appendPreservedSuffixLine(line: string): this;
    clearPreservedSuffix(): this;
    notes(): NotesEdit;
    multimedia(): ActMediaEdit;
    /** Entretien audio (`EVEN` + `OBJE` + transcription). */
    asAudioInterview(persons?: readonly Person[], objeRegistry?: Map<number, ObjeRecord>): AudioInterviewActEdit;
    /** Supprime toutes les notes rattachées à l’acte. */
    clearNotes(): this;
    /** Supprime tous les médias rattachés à l’acte. */
    clearMultimedia(): this;
}
export declare function editAct(act: Act): ActEdit;
