import { Act, Acts, type TypeAct } from "../commons/Act";
import { ActEdit } from "./ActEdit";
import { type CreateActInit } from "./factories";
/**
 * API d’édition cohérente autour d’un {@link Acts}.
 */
export declare class ActsEdit {
    private readonly target;
    constructor(target: Acts);
    get value(): Acts;
    /**
     * Crée un {@link Act}, l’ajoute en fin de liste et renvoie sa facade d’édition.
     */
    addNew(type: TypeAct, init?: CreateActInit | null): ActEdit;
    add(act: Parameters<Acts["add"]>[0]): this;
    /** Insère un acte existant à la position donnée (0 = début). */
    insertAt(index: number, act: Act): this;
    /**
     * Crée un acte et l’insère à la position donnée.
     */
    insertNewAt(index: number, type: TypeAct, init?: CreateActInit | null): ActEdit;
    /** Supprime le dernier acte s’il en existe au moins un. */
    removeLast(): this;
    /** Index de l’acte par identité de référence, ou `-1`. */
    indexOfAct(act: Act): number;
    /** Retire l’acte s’il appartient à la liste ; @returns si une entrée a été supprimée. */
    removeAct(act: Act): boolean;
    replaceAt(index: number, act: Parameters<Acts["updateFromIndex"]>[0]): this;
    removeAt(index: number): this;
    clear(): this;
    sortByDate(): this;
    at(index: number): ActEdit;
}
export declare function editActs(acts: Acts): ActsEdit;
