import { BaseModel } from './base.model';
import { NodeModel } from './node.model';
import { LinkModel } from './link.model';
import { Observable } from 'rxjs';
export declare class PortModel extends BaseModel<NodeModel> {
    private name;
    private links$;
    private maximumLinks;
    private linkType;
    private x$;
    private y$;
    private width$;
    private height$;
    constructor(name: string, type?: string, id?: string, maximumLinks?: number, linkType?: string);
    getNode(): NodeModel<PortModel>;
    getName(): string;
    selectX(): Observable<number>;
    selectY(): Observable<number>;
    getY(): number;
    getX(): number;
    getHeight(): number;
    getWidth(): number;
    getMaximumLinks(): number;
    setMaximumLinks(maximumLinks: number): void;
    getLinkType(): string;
    setLinkType(type: string): void;
    removeLink(link: LinkModel): void;
    addLink(link: LinkModel): void;
    getLinks(): {
        [id: string]: LinkModel;
    };
    selectLinks(): Observable<{
        [id: string]: LinkModel;
    }>;
    updateCoords({ x, y, width, height }: {
        x: number;
        y: number;
        width: number;
        height: number;
    }): void;
    canLinkToPort(port: PortModel): boolean;
    isLocked(): boolean;
    createLinkModel(): LinkModel | null;
}
