export declare class Comment {
    comment: string;
    constructor(comment: string);
}
export declare class Note {
    text: string;
    of: string;
    constructor(text: string, of?: string);
}
export declare class Component {
    name: string;
    title: string;
    constructor(name: string, title: string);
}
export declare class UseCase {
    name: string;
    title: string;
    constructor(name: string, title: string);
}
export declare type Accessor = ('-' | '#' | '~' | '+');
export declare class Method {
    name: string;
    isStatic: boolean;
    accessor: Accessor;
    returnType: string;
    _arguments: string;
    constructor(name: string, isStatic: boolean, accessor: Accessor, returnType: string, _arguments: string);
}
export declare class MemberVariable {
    name: string;
    isStatic: boolean;
    accessor: Accessor;
    type: string;
    constructor(name: string, isStatic: boolean, accessor: Accessor, type?: string);
}
export declare type Member = (Method | MemberVariable);
export declare class Enum {
    name: string;
    title: string;
    members: Member[];
    extends_: string[];
    implements_: string[];
    generics: string[];
    stereotypes: string[];
    constructor(name: string, title: string, members?: Member[], extends_?: string[], implements_?: string[], generics?: string[], stereotypes?: string[]);
}
export declare class Interface {
    name: string;
    title: string;
    members: Member[];
    extends_: string[];
    implements_: string[];
    generics: string[];
    stereotypes: string[];
    constructor(name: string, title: string, members?: Member[], extends_?: string[], implements_?: string[], generics?: string[], stereotypes?: string[]);
}
export declare class Class {
    name: string;
    title: string;
    isAbstract: boolean;
    members: Member[];
    extends_: string[];
    implements_: string[];
    generics: string[];
    stereotypes: string[];
    constructor(name: string, title: string, isAbstract: boolean, members?: Member[], extends_?: string[], implements_?: string[], generics?: string[], stereotypes?: string[]);
}
export declare type GroupType = ('package' | 'namespace' | 'node' | 'folder' | 'frame' | 'cloud' | 'database' | 'rectangle');
export declare class Group {
    name: string;
    title: string;
    type: GroupType;
    elements: UMLElement[];
    constructor(name: string, title: string, type: GroupType, elements: UMLElement[]);
}
export declare type RelationshipArrowHead = ('' | '<|' | '|>' | '*' | 'o' | '<' | '>' | '#' | 'x' | '}' | '{' | '+' | '^' | '()' | '(' | ')');
export declare type RelationshipArrowBody = ('-' | '.');
export declare class Relationship {
    left: string;
    right: string;
    leftType: string;
    rightType: string;
    leftArrowHead: RelationshipArrowHead;
    rightArrowHead: RelationshipArrowHead;
    leftArrowBody: RelationshipArrowBody;
    rightArrowBody: RelationshipArrowBody;
    leftCardinality: string;
    rightCardinality: string;
    label: string;
    hidden: boolean;
    constructor(left: string, right: string, leftType: string, rightType: string, leftArrowHead: RelationshipArrowHead, rightArrowHead: RelationshipArrowHead, leftArrowBody: RelationshipArrowBody, rightArrowBody: RelationshipArrowBody, leftCardinality: string, rightCardinality: string, label: string, hidden: boolean);
}
export declare type Stdlib_C4_Context_Type = ('Person' | 'Person_Ext' | 'System' | 'System_Ext' | 'SystemDb' | 'SystemQueue' | 'SystemDb_Ext' | 'SystemQueue_Ext');
export declare class Stdlib_C4_Context {
    type_: {
        source: string;
        name: Stdlib_C4_Context_Type;
    };
    alias: string;
    label: string;
    descr: string;
    sprite: string;
    tags: string;
    link: string;
    constructor(type_: {
        source: string;
        name: Stdlib_C4_Context_Type;
    }, alias: string, label: string, descr?: string, sprite?: string, tags?: string, link?: string);
}
export declare type Stdlib_C4_Container_Component_Type = ('ContainerQueue_Ext' | 'ContainerQueue' | 'ContainerDb_Ext' | 'ContainerDb' | 'Container_Ext' | 'Container' | 'ComponentQueue_Ext' | 'ComponentQueue' | 'ComponentDb_Ext' | 'ComponentDb' | 'Component_Ext' | 'Component');
export declare class Stdlib_C4_Container_Component {
    type_: {
        source: string;
        name: Stdlib_C4_Container_Component_Type;
    };
    alias: string;
    label: string;
    techn: string;
    descr: string;
    sprite: string;
    tags: string;
    link: string;
    constructor(type_: {
        source: string;
        name: Stdlib_C4_Container_Component_Type;
    }, alias: string, label: string, techn?: string, descr?: string, sprite?: string, tags?: string, link?: string);
}
export declare type Stdlib_C4_Boundary_Type = ('Boundary' | 'Enterprise_Boundary' | 'System_Boundary' | 'Container_Boundary');
export declare class Stdlib_C4_Boundary {
    type_: {
        source: string;
        name: Stdlib_C4_Boundary_Type;
    };
    alias: string;
    label: string;
    tags: string;
    link: string;
    elements: UMLElement[];
    constructor(type_: {
        source: string;
        name: Stdlib_C4_Boundary_Type;
    }, alias: string, label: string, tags: string, link: string, elements: UMLElement[]);
}
export declare type Stdlib_C4_Dynamic_Rel_Type = ('Rel' | 'BiRel' | 'Rel_Back' | 'Rel_Neighbor' | 'BiRel_Neighbor' | 'Rel_Back_Neighbor' | 'Rel_D' | 'Rel_Down' | 'BiRel_D' | 'BiRel_Down' | 'Rel_U' | 'Rel_Up' | 'BiRel_U' | 'BiRel_Up' | 'Rel_L' | 'Rel_Left' | 'BiRel_L' | 'BiRel_Left' | 'Rel_R' | 'Rel_Right' | 'BiRel_R' | 'BiRel_Right');
export declare class Stdlib_C4_Dynamic_Rel {
    type_: {
        source: string;
        name: Stdlib_C4_Dynamic_Rel_Type;
    };
    from: string;
    to: string;
    label: string;
    techn: string;
    descr: string;
    sprite: string;
    tags: string;
    link: string;
    constructor(type_: {
        source: string;
        name: Stdlib_C4_Dynamic_Rel_Type;
    }, from: string, to: string, label: string, techn?: string, descr?: string, sprite?: string, tags?: string, link?: string);
}
export declare type Stdlib_C4_Deployment_Type = ('Deployment_Node' | 'Deployment_Node_L' | 'Deployment_Node_R' | 'Node_L' | 'Node_R' | 'Node');
export declare class Stdlib_C4_Deployment {
    type_: {
        source: string;
        name: Stdlib_C4_Deployment_Type;
    };
    alias: string;
    label: string;
    type: string;
    descr: string;
    sprite: string;
    tags: string;
    link: string;
    constructor(type_: {
        source: string;
        name: Stdlib_C4_Deployment_Type;
    }, alias: string, label: string, type?: string, descr?: string, sprite?: string, tags?: string, link?: string);
}
export declare class Stdlib_C4_Rel {
    type_: {
        source: string;
        name: string;
    };
    alias1: string;
    alias2: string;
    label: string;
    direction: string;
    techn: string;
    constructor(type_: {
        source: string;
        name: string;
    }, alias1: string, alias2: string, label: string, direction: string, techn?: string);
}
export declare type UMLElement = (Note | Component | UseCase | Enum | Interface | Class | Group | Relationship | Stdlib_C4_Context | Stdlib_C4_Container_Component | Stdlib_C4_Boundary | Stdlib_C4_Dynamic_Rel | Stdlib_C4_Deployment | Stdlib_C4_Rel);
export declare class UML {
    elements: UMLElement[];
    constructor(elements: UMLElement[]);
}
export declare class File {
    name: string;
    diagrams: UML[];
    constructor(name: string, diagrams: UML[]);
}
