export interface NetworkNode {
    id: string;
    label: string;
    type?: string;
    group?: string;
    weight?: number;
    color?: string;
    size?: number;
    x?: number;
    y?: number;
    metadata?: Record<string, any>;
}
export interface NetworkEdge {
    id: string;
    source: string;
    target: string;
    label?: string;
    weight?: number;
    color?: string;
    width?: number;
    type?: 'directed' | 'undirected';
    metadata?: Record<string, any>;
}
export interface NetworkLayout {
    name: string;
    options?: Record<string, any>;
}
export interface NetworkConfig {
    layout: NetworkLayout;
    nodeColorBy: string;
    edgeColorBy: string;
    enablePhysics: boolean;
    enableClustering: boolean;
    theme: 'light' | 'dark' | 'auto';
}
export interface NetworkEvents {
    nodeClick: {
        node: NetworkNode;
        originalEvent: Event;
    };
    nodeHover: {
        node: NetworkNode;
        originalEvent: Event;
    };
    edgeClick: {
        edge: NetworkEdge;
        originalEvent: Event;
    };
    edgeHover: {
        edge: NetworkEdge;
        originalEvent: Event;
    };
    selectionChange: {
        selectedNodes: string[];
        selectedEdges: string[];
    };
    zoomChange: {
        zoom: number;
    };
    panChange: {
        pan: {
            x: number;
            y: number;
        };
    };
    layoutStart: {};
    layoutComplete: {};
    exported: {
        format: string;
        blob: Blob;
    };
    error: {
        error: Error;
    };
}
export declare const NetworkLayouts: {
    readonly FORCE_DIRECTED: {
        readonly name: "cose";
        readonly options: {
            readonly animate: true;
            readonly animationDuration: 1000;
            readonly nodeRepulsion: 400000;
            readonly idealEdgeLength: 100;
            readonly edgeElasticity: 100;
            readonly nestingFactor: 5;
            readonly gravity: 80;
            readonly numIter: 1000;
            readonly randomize: false;
        };
    };
    readonly HIERARCHICAL: {
        readonly name: "dagre";
        readonly options: {
            readonly animate: true;
            readonly animationDuration: 1000;
            readonly rankDir: "TB";
            readonly nodeSep: 50;
            readonly edgeSep: 10;
            readonly rankSep: 50;
        };
    };
    readonly CIRCULAR: {
        readonly name: "circle";
        readonly options: {
            readonly animate: true;
            readonly animationDuration: 1000;
            readonly radius: 200;
            readonly startAngle: number;
            readonly clockwise: true;
        };
    };
    readonly GRID: {
        readonly name: "grid";
        readonly options: {
            readonly animate: true;
            readonly animationDuration: 1000;
            readonly rows: undefined;
            readonly cols: undefined;
        };
    };
    readonly RANDOM: {
        readonly name: "random";
        readonly options: {
            readonly animate: true;
            readonly animationDuration: 1000;
        };
    };
};
export declare const NodeStyles: {
    readonly SMALL: {
        readonly size: 20;
        readonly fontSize: 10;
    };
    readonly MEDIUM: {
        readonly size: 30;
        readonly fontSize: 12;
    };
    readonly LARGE: {
        readonly size: 50;
        readonly fontSize: 14;
    };
    readonly XLARGE: {
        readonly size: 80;
        readonly fontSize: 16;
    };
};
export declare const EdgeStyles: {
    readonly THIN: {
        readonly width: 1;
    };
    readonly NORMAL: {
        readonly width: 2;
    };
    readonly THICK: {
        readonly width: 4;
    };
    readonly VERY_THICK: {
        readonly width: 6;
    };
};
export declare const ColorPalettes: {
    readonly CATEGORY_10: readonly ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"];
    readonly PASTEL: readonly ["#FFB3BA", "#FFDFBA", "#FFFFBA", "#BAFFC9", "#BAE1FF", "#FFB3FF", "#C9BAFF", "#FFBABA", "#BAFFBA", "#BAFFFF"];
    readonly VIBRANT: readonly ["#FF6B6B", "#4ECDC4", "#45B7D1", "#96CEB4", "#FFEAA7", "#DDA0DD", "#98D8C8", "#F7DC6F", "#BB8FCE", "#85C1E9"];
    readonly NORD: readonly ["#8fbcbb", "#88c0d0", "#81a1c1", "#5e81ac", "#bf616a", "#d08770", "#ebcb8b", "#a3be8c", "#b48ead", "#2e3440"];
};
export type NetworkLayoutName = keyof typeof NetworkLayouts;
export type NodeStyleName = keyof typeof NodeStyles;
export type EdgeStyleName = keyof typeof EdgeStyles;
export type ColorPaletteName = keyof typeof ColorPalettes;
export interface KnowledgeNode extends NetworkNode {
    type: 'concept' | 'entity' | 'relation' | 'document' | 'person' | 'event';
    category?: string;
    confidence?: number;
    importance?: number;
    dateCreated?: Date;
    dateModified?: Date;
    tags?: string[];
}
export interface KnowledgeEdge extends NetworkEdge {
    type: 'relates_to' | 'part_of' | 'causes' | 'depends_on' | 'similar_to' | 'references';
    confidence?: number;
    strength?: number;
    bidirectional?: boolean;
    temporal?: {
        start?: Date;
        end?: Date;
    };
}
export interface KnowledgeGraphConfig extends NetworkConfig {
    enableTemporalFiltering: boolean;
    enableConfidenceFiltering: boolean;
    minConfidence: number;
    showMetadata: boolean;
    enableClustering: boolean;
    clusterBy: 'type' | 'category' | 'importance';
}
export interface NetworkMetrics {
    nodeCount: number;
    edgeCount: number;
    density: number;
    averageDegree: number;
    clustering: number;
    diameter: number;
    connectedComponents: number;
    centralityMeasures: {
        betweenness: Record<string, number>;
        closeness: Record<string, number>;
        degree: Record<string, number>;
        eigenvector: Record<string, number>;
    };
}
export interface ClusteringResult {
    clusters: Array<{
        id: string;
        nodes: string[];
        size: number;
        cohesion: number;
    }>;
    modularity: number;
    silhouetteScore: number;
}
export interface ExportOptions {
    format: 'png' | 'jpg' | 'svg' | 'json' | 'graphml' | 'gexf';
    quality?: number;
    scale?: number;
    background?: string;
    includeMetadata?: boolean;
    compressed?: boolean;
}
export interface SearchOptions {
    query: string;
    nodeFields: string[];
    edgeFields: string[];
    fuzzy: boolean;
    caseSensitive: boolean;
    maxResults?: number;
}
export interface FilterOptions {
    nodeTypes?: string[];
    edgeTypes?: string[];
    nodeGroups?: string[];
    minWeight?: number;
    maxWeight?: number;
    dateRange?: {
        start: Date;
        end: Date;
    };
    customFilters?: Array<{
        field: string;
        operator: 'equals' | 'contains' | 'greater' | 'less' | 'between';
        value: any;
    }>;
}
//# sourceMappingURL=network-types.d.ts.map