import { Position, WorkflowObject, WorkflowObjectType } from '../models/types';
import * as i0 from "@angular/core";
export interface NodeStyle {
    fill: string;
    stroke: string;
    strokeWidth: number;
    strokeLinejoin?: string;
}
export declare class RenderingService {
    generateNodePath(object: WorkflowObject): string;
    getStartNodePath(width: number, height: number): string;
    getFormPath(width: number, height: number): string;
    getStartNodePaths(): {
        circle: string;
        arrow: string;
    };
    getNodeStyle(isSelected: boolean): NodeStyle;
    getConnectionStyle(isSelected: boolean): Partial<SVGPathElement['style']>;
    getConnectionPreviewStyle(): Partial<SVGPathElement['style']>;
    getSwimlaneStyle(): Partial<SVGRectElement['style']>;
    getNodeTransforms(node: WorkflowObject): {
        node: string;
        arrow?: string;
        indicator?: string;
    };
    getDecisionNodePath(width: number, height: number): string;
    getPropertiesIndicator(): {
        circle: {
            r: number;
            style: NodeStyle;
        };
        text: {
            content: string;
            style: Partial<SVGTextElement['style']>;
        };
    };
    getLabelStyle(nodeType: WorkflowObjectType): Partial<SVGTextElement['style']>;
    getDefaultDimensions(): {
        width: number;
        height: number;
        gridSize: number;
    };
    getGridPattern(): {
        pattern: {
            width: number;
            height: number;
        };
        path: {
            d: string;
            style: Partial<SVGPathElement['style']>;
        };
    };
    /**
     * Gets the SVG path for a connection
     */
    getConnectionPath(points: Position[]): string;
    /**
     * Gets style for an individual connection segment
     */
    getConnectionSegmentStyle(isSelected: boolean, isHovered: boolean): Partial<SVGPathElement['style']>;
    private createArrowhead;
    private getEndPointAngle;
    getDecisionPath(width: number, height: number): string;
    getSubflowPath(width: number, height: number): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<RenderingService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<RenderingService>;
}
