import type { ReadGed } from "../import/ReadGed";
import type { TypeAct } from "../commons/Act";
import { Person } from "../commons/Person";
import type { CreateActInit } from "../edit/factories";
/** Prochain identifiant de famille `F` libre d'après les `FAMC` / `FAMS` du jeu. */
export declare function nextFamilyId(persons: readonly Person[]): number;
/** Rattache un enfant à une famille (`FAMC`). */
export declare function linkChildToFamily(readGed: ReadGed, child: Person, familyId: number): void;
/** Retire le rattachement `FAMC` d'un enfant. */
export declare function unlinkChildFromFamily(readGed: ReadGed, child: Person): void;
/**
 * Retire toutes les références à une famille `familyId` : `FAMS` (toutes occurrences) et `FAMC` si égal.
 * Puis {@link ReadGed.groupPartners}.
 */
export declare function removeFamilyReferencesFromDataset(readGed: ReadGed, familyId: number): void;
export type CreateUnionFamilyOptions = {
    /**
     * Type d’acte créé sur chaque conjoint pour matérialiser l’union (défaut : {@link Identifier.MARR}).
     * Doit appartenir à {@link GEDCOM_7_EVENT_TAG_SET} (ex. {@link Identifier.ENGA}, ou `EVEN` avec
     * `CreateActInit.construction` pour une union civile / custom).
     */
    eventTag?: TypeAct;
};
/**
 * Crée une famille `F` (nouvel id), rattache les deux conjoints en `FAMS` et ajoute le même type d’acte
 * sur chacun (par défaut `MARR`). Voir {@link CreateUnionFamilyOptions} pour fiançailles, bans, etc.
 * @returns l'identifiant interne de famille créé.
 */
export declare function createMarriageFamily(readGed: ReadGed, spouseA: Person, spouseB: Person, init?: CreateActInit | null, unionOptions?: CreateUnionFamilyOptions | null): number;
