/**
 * Shared type definitions for RepoPilot SDK.
 */
type NodeId = string;
declare enum NodeType {
    FILE = "file",
    PACKAGE = "package",
    CLASS = "class",
    INTERFACE = "interface",
    ENUM = "enum",
    METHOD = "method",
    FIELD = "field",
    CONSTRUCTOR = "constructor",
    CBS_SCHEMA = "cbs_schema"
}
declare enum EdgeType {
    CONTAINS = "contains",
    EXTENDS = "extends",
    IMPLEMENTS = "implements",
    CALLS = "calls",
    REFERENCES = "references",
    POPULATES = "populates",
    IMPORTS = "imports",
    DEPENDS_ON = "depends_on"
}
interface SourceLocation {
    filePath: string;
    lineStart: number;
    lineEnd: number;
}
interface GraphNode {
    id: NodeId;
    type: NodeType;
    name: string;
    location?: SourceLocation;
    attributes: Record<string, unknown>;
}
interface GraphEdge {
    source: NodeId;
    target: NodeId;
    type: EdgeType;
    attributes: Record<string, unknown>;
}
interface ContextItem {
    nodeType: string;
    name: string;
    summary: string;
    filePath?: string;
    lineStart?: number;
    lineEnd?: number;
    snippet?: string;
    relationships: string[];
}
interface StructuredContext {
    query: string;
    items: ContextItem[];
    totalTokensEstimate: number;
    suggestedQueries: string[];
}

export { type ContextItem as C, EdgeType as E, type GraphNode as G, type NodeId as N, type StructuredContext as S, type GraphEdge as a, NodeType as b, type SourceLocation as c };
