import type { Act } from "../commons/Act";
import type { ObjeRecord } from "../commons/ObjeRecord";
import type { Person } from "../commons/Person";
import { DateAct } from "../commons/DateAct";
import { Place } from "../commons/Place";
import { type CreateAudioInterviewActInit } from "../utils/gedcom/audioInterviewAct";
/**
 * Façade d’édition pour un acte « entretien audio » (`EVEN` + `OBJE` + transcription).
 */
export declare class AudioInterviewActEdit {
    private readonly target;
    private readonly persons;
    private readonly objeRegistry?;
    private pendingObjeRecord;
    constructor(target: Act, persons?: readonly Person[], objeRegistry?: Map<number, ObjeRecord>);
    get value(): Act;
    get objeRecord(): ObjeRecord | null;
    ensureEvenInterviewType(): this;
    setDescription(text: string): this;
    setEvenTypeLabel(label: string): this;
    setDate(date: DateAct | null): this;
    setPlace(place: Place | null): this;
    setParticipants(indis: readonly number[]): this;
    setTranscription(text: string): this;
    /** Attache un enregistrement audio (fichier ou URI) et prépare l’OBJE associé. */
    attachAudio(init: Pick<CreateAudioInterviewActInit, "audioFile" | "audioUri" | "vttUri" | "objeXrefId" | "ownerIndi">): this;
    registerPendingObje(map: Map<number, ObjeRecord>): this;
    isAudioInterview(): boolean;
    transcription(): string | null;
    audioMedia(): import("..").MultimediaFile[];
    objeRecords(): ObjeRecord[];
    primaryAudioUri(): string | null;
    nextObjeId(): number;
}
export declare function editAudioInterviewAct(act: Act, persons?: readonly Person[], objeRegistry?: Map<number, ObjeRecord>): AudioInterviewActEdit;
