declare module "family-chart" { type f3data = any; type f3tree = any; interface f3Rels { spouses?: string[]; father?: string; mother?: string; children?: string[]; } interface f3DataData { gender: "M" | "F"; avatar?: string; dead: boolean; birthday?: string; deathday?: string; first_name: string; last_name: string; dateOfWedding?: string; wedding_state?: string; } interface f3Data { id: string; rels: f3Rels; data: f3DataData; } type f3State = { data: f3Data[]; main_id?: any; tree?: f3tree; node_separation?: number; level_separation?: number; }; interface f3Update { tree: (props) => void; mainId: (mainId) => void; data: (data: f3data) => void; } interface f3Store { state: f3State; update: f3update; getData: () => f3data; getTree: () => f3tree; setOnUpdate: (cb: (props) => void) => void; methods: any; } function createStore(initial_state: f3State): f3Store; function CalculateTree({ data_stash, main_id = null, is_vertical = true, node_separation = 250, level_separation = 150, }); function d3AnimationView(p: { store: f3Store; cont: HTMLElement | null; Card?: any; }); const handlers: any; type F3elements = { Card: (props: { store: f3Store; svg: HTMLElement; mini_tree: boolean; link_break: boolean; cardEditForm?: boolean; card_dim: { w: number; h: number; text_x: number; text_y: number; img_w: number; img_h: number; img_x: number; img_y: number; }; card_display: ((data: f3Data) => string)[]; }) => F3CardBuilder; }; type F3CardBuilder = (p: { node; d }) => HTMLElement; const elements: F3elements; }