import type { NodeType } from '@stoplight/types';
import type { FAIconProp, ITableOfContentsLink } from '@stoplight/ui-kit';
export interface INodeFilter {
    nodeUri?: string;
    nodeType?: string;
}
export interface IChange {
    message: string;
    createdAt: string;
    semver: string;
}
export interface IBranchNode {
    id: number;
    baseUri?: string;
    version?: string;
    isLatestVersion?: boolean;
    node: {
        id: number;
        uri: string;
    };
    snapshot: {
        id: number;
        type: string;
        name: string;
        summary?: string | null;
        data?: unknown;
        tagNames?: string[];
    };
}
export interface TableOfContentsLinkWithId extends ITableOfContentsLink {
    id: number | string;
}
export interface INodeGraph {
    nodes: IGraphNode[];
    edges: IGraphEdge[];
}
export interface IGraphNode {
    groupNodeId: number;
    name: string;
    srn: string;
    uri: string;
    depth: number;
    type: NodeType | string;
    version: string;
    projectName: string;
    groupSlug: string;
}
export interface IGraphEdge {
    fromGroupNodeId: number;
    fromPath: string;
    toGroupNodeId: number;
    toPath: string;
}
export interface INodeEdge {
    id: number;
    depth: number;
    type: string;
    fromBranchNodeId: number;
    fromBranchNodeName: string;
    fromBranchNodeType: string;
    fromBranchNodeUri: string;
    fromBranchNodePath: string;
    fromBranchNodeVersion: string;
    toBranchNodeId: number;
    toBranchNodeName: string;
    toBranchNodeType: string;
    toBranchNodeUri: string;
    toBranchNodePath: string;
    toBranchNodeVersion: string;
}
export declare type IconMapType = NodeType | 'group' | 'divider' | 'item';
export declare type NodeIconMapping = {
    [type in IconMapType]?: FAIconProp;
};
