type C4ObjectType = "person" | "group" | "softwareSystem" | "container" | "component";
type C4Call = Readonly<{
    callerName: C4Name;
    calleeName: C4Name;
    operationName: string;
}>;
type C4Callchain = Readonly<{
    name: string;
    calls: C4Call[];
}>;
type C4Name = string & {
    __brand: "name";
};
type C4ObjectKey = string & {
    __brand: "object_key";
};
type C4CallKey = string & {
    __brand: "call_key";
};
type C4Object = Readonly<{
    type: C4ObjectType;
    name: C4Name;
    tags: readonly string[];
    parentName: C4Name | null;
}>;
type C4Model = Readonly<{
    objects: Record<C4Name, C4Object>;
    callchains: readonly C4Callchain[];
}>;

export type { C4Model as C, C4Name as a, C4ObjectType as b, C4Object as c, C4Call as d, C4Callchain as e, C4CallKey as f, C4ObjectKey as g };
