import { GuidAccepted, IGuidImmutable, IGuidMutable } from "@ef-carbon/primitive"; import { IImmutable as IMetaImmutable, IMutable as IMetaMutable } from "./formation/IMeta"; import Factory from "./Factory"; import { IDiscourseImmutable, IDiscourseMutable } from "./IDiscourse"; import { ILinkImmutable, ILinkMutable } from "./ILink"; export interface IFormationImmutable { readonly id: string | IGuidImmutable; readonly discourse: IDiscourseImmutable; readonly link: ILinkImmutable; readonly tags?: ReadonlyArray; readonly meta?: IMetaImmutable; } export interface IFormationMutable extends IFormationImmutable { id: string | IGuidMutable; discourse: IDiscourseMutable; link: ILinkMutable; tags?: Array; meta?: IMetaMutable; } export interface IFormationOptions { readonly id: GuidAccepted; readonly discourse: IDiscourseImmutable; readonly link: ILinkImmutable; readonly tags?: Iterable; readonly meta?: IMetaImmutable; readonly factory: Factory; } export interface IFormationStatic { new (init: IFormationOptions): IFormationMutable; } export { IFormationStatic as IStatic, IFormationOptions as IOptions, IFormationMutable as IMutable, IFormationImmutable as IImmutable, }; export default IFormationMutable;