import * as React from 'react';
import { IItemListRendererProps, IItemRendererProps } from '@blueprintjs/select';
import { IGraphContext } from '../GraphContext';
import { EdgeType } from '../components';
import { Vertex } from '../layout';
interface IEdgeCreateDialogProps extends IGraphContext {
    source: Vertex;
    target?: Vertex;
    isOpen: boolean;
    toggleDialog: () => any;
}
interface IEdgeCreateDialogState {
    source?: Vertex;
    target?: Vertex;
    type?: EdgeType;
    isProcessing: boolean;
}
export declare class EdgeCreateDialog extends React.Component<IEdgeCreateDialogProps, IEdgeCreateDialogState> {
    types: EdgeType[];
    state: IEdgeCreateDialogState;
    constructor(props: any);
    componentDidMount(): void;
    componentDidUpdate(prevProps: IEdgeCreateDialogProps): void;
    onChangeType(type: EdgeType): void;
    onSelectSource(source: Vertex): void;
    onSelectTarget(target: Vertex): void;
    isValid(): boolean | undefined;
    onSubmit(e: React.ChangeEvent<HTMLFormElement>): Promise<void>;
    isReversible(): boolean | undefined;
    onReverse(): void;
    getTypes(): EdgeType[];
    getVertices(include?: Vertex, except?: Vertex): Vertex[];
    getSourceLabel(): string | undefined;
    getTargetLabel(): string | undefined;
    getTypeDescription(): string | undefined | null;
    getEdgeTypeIcon(type?: EdgeType): JSX.Element;
    renderEdgeTypeList(props: IItemListRendererProps<EdgeType>): JSX.Element;
    renderEdgeType(type: EdgeType, { handleClick, modifiers }: IItemRendererProps): JSX.Element;
    render(): JSX.Element;
}
export {};
