import { Act, type ActConstructionOptions, type TypeAct } from "../commons/Act";
import { DateAct } from "../commons/DateAct";
import type { IndiGedcomSubLine } from "../commons/IndiGedcomSubLine";
import { IndiAttribute } from "../commons/IndiAttribute";
import { Note, Notes } from "../commons/Note";
import { Person, Sex } from "../commons/Person";
import { PersonNameVariant } from "../commons/PersonNameVariant";
import { Place } from "../commons/Place";
export type CreateActInit = {
    dateAct?: DateAct | null;
    place?: Place | null;
    indis?: readonly number[] | null;
    construction?: ActConstructionOptions | null;
    notes?: Notes;
};
/** Construit un {@link Act} (pour `ActsEdit.add`, `addNew`, etc.). */
export declare function createAct(type: TypeAct, init?: CreateActInit | null): Act;
/**
 * Construit une {@link Note} avec des lignes initialisées (tableau vide par défaut).
 */
export declare function createNote(initialLines?: readonly string[] | null): Note;
export type CreatePersonStubInit = {
    sosa?: number;
    sex?: Sex;
    firstnames?: readonly string[];
    lastname?: string;
    famc?: number;
    fams?: readonly number[];
};
/**
 * Crée un {@link Person} minimal avec un `INDI` connu (arbre vide ou ajout manuel).
 */
export declare function createPersonStub(indi: number, init?: CreatePersonStubInit | null): Person;
export declare function createPersonNameVariant(payload: string, type?: string): PersonNameVariant;
export declare function createIndiAttribute(tag: string, value?: string, children?: readonly IndiGedcomSubLine[]): IndiAttribute;
