export interface GraphState {
    ontology?: {
        version?: string;
        classes?: string[];
        relationTypes?: string[];
    };
    project?: {
        key?: string;
        name?: string;
        root?: string;
    };
    nodes: GraphNode[];
    edges?: GraphStateEdge[];
}
export interface GraphNode {
    id: string;
    type: string;
    label?: string;
    summary?: string;
    path?: string;
    content?: string;
    tags?: string[];
    properties?: Record<string, unknown>;
    createdAt?: string;
    updatedAt?: string;
}
export interface GraphStateEdge {
    id?: string;
    from?: string;
    to?: string;
    source?: string;
    target?: string;
    type?: string;
    label?: string;
}
export interface GraphEdge {
    id: string;
    source: string;
    target: string;
    type: string;
}
export interface GraphViewOptions {
    inputPath: string;
    outputPath: string;
    maxNodes?: number;
    includeMemoryVersions?: boolean;
    typeFilter?: string[];
    open?: boolean;
}
export interface GraphViewResult {
    outputPath: string;
    nodeCount: number;
    edgeCount: number;
}
export interface GraphBrowserOpener {
    command: string;
    args: string[];
}
export interface GraphBrowserOpenerOptions {
    platform?: NodeJS.Platform;
    env?: NodeJS.ProcessEnv;
    procVersionText?: string;
    commandExists?: (command: string) => boolean | Promise<boolean>;
}
export declare function createGraphView(options: GraphViewOptions): Promise<GraphViewResult>;
export declare function loadVisibleNodes(state: GraphState, options: GraphViewOptions): GraphNode[];
export declare function materializeEdges(state: GraphState, visibleNodes: GraphNode[]): GraphEdge[];
export declare function toCytoscapeElements(nodes: GraphNode[], edges: GraphEdge[]): Array<{
    data: Record<string, unknown>;
}>;
export declare function isWslRuntime(options?: Pick<GraphBrowserOpenerOptions, "env" | "platform" | "procVersionText">): boolean;
export declare function resolveGraphBrowserOpener(url: string, options?: GraphBrowserOpenerOptions): Promise<GraphBrowserOpener | null>;
