import { Edge, EdgePosition, Edges, Point } from '../../common/types';
import { EdgeState } from '../../models/edge';
import { StrokeStyle } from '../../common/configs';
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
interface Props {
    edgeId?: string;
    edge?: Edge;
    edges?: Edges;
    state: EdgeState;
    isSummarized: boolean;
}
interface BaseEdgeSlotProps {
    edges: Edges;
    stroke: StrokeStyle;
    position: EdgePosition;
    center: Point;
    hovered: boolean;
    selected: boolean;
    scale: number;
    length: number;
    pointAtLength: (distance: number) => Point;
}
interface SingleEdgeSlotProps {
    isSummarized: false;
    edgeId: string;
    edge: Edge;
}
interface SummarizedEdgeSlotProps {
    isSummarized: true;
}
export type EdgeOverlaySlotProps = BaseEdgeSlotProps & (SingleEdgeSlotProps | SummarizedEdgeSlotProps);
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        default: (props: EdgeOverlaySlotProps) => any;
    }> & {
        default: (props: EdgeOverlaySlotProps) => any;
    };
    refs: {};
    rootEl: SVGGElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<Props> & Readonly<{}>, {
    edges: Edges;
    edge: Edge;
    edgeId: string;
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, SVGGElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
