/** * Network Graph State. * Handles CRUD operations for networks (communities). * * Lifecycle flow: * START → routerNode → {createNode | readNode | updateNode | deleteNode} → END * * ## Scope semantics * * When the chat is network-scoped (`networkId` is set) and `showAll` is false, * readNode surfaces only the focused network plus the user's personal network * (contacts). Setting `showAll: true` bypasses the restriction (admin use). * * IND-546: canonical home — previously network/network.state.ts. */ export declare const NetworkGraphState: import("@langchain/langgraph").AnnotationRoot<{ /** User performing the action. Always required. */ userId: { (annotation: import("@langchain/langgraph").SingleReducer): import("@langchain/langgraph").BaseChannel, unknown>; (): import("@langchain/langgraph").LastValue; Root: (sd: S) => import("@langchain/langgraph").AnnotationRoot; }; /** Target network ID. Required for read/update/delete. From ChatGraph or tool arg. */ networkId: import("@langchain/langgraph").BaseChannel | undefined, unknown>; /** Operation mode. */ operationMode: import("@langchain/langgraph").BaseChannel<"delete" | "update" | "create" | "read", "delete" | "update" | "create" | "read" | import("@langchain/langgraph").OverwriteValue<"delete" | "update" | "create" | "read">, unknown>; /** For create mode: network creation data. */ createInput: import("@langchain/langgraph").BaseChannel<{ title: string; prompt?: string; imageUrl?: string | null; joinPolicy?: "anyone" | "invite_only"; } | undefined, { title: string; prompt?: string; imageUrl?: string | null; joinPolicy?: "anyone" | "invite_only"; } | import("@langchain/langgraph").OverwriteValue<{ title: string; prompt?: string; imageUrl?: string | null; joinPolicy?: "anyone" | "invite_only"; } | undefined> | undefined, unknown>; /** For update mode: fields to update. */ updateInput: import("@langchain/langgraph").BaseChannel<{ title?: string; prompt?: string | null; imageUrl?: string | null; joinPolicy?: "anyone" | "invite_only"; } | undefined, { title?: string; prompt?: string | null; imageUrl?: string | null; joinPolicy?: "anyone" | "invite_only"; } | import("@langchain/langgraph").OverwriteValue<{ title?: string; prompt?: string | null; imageUrl?: string | null; joinPolicy?: "anyone" | "invite_only"; } | undefined> | undefined, unknown>; /** * When true and network-scoped, read returns all user networks (not just scoped one). * Default false to enforce strict scope isolation. */ showAll: import("@langchain/langgraph").BaseChannel, unknown>; /** Output for read mode. */ readResult: import("@langchain/langgraph").BaseChannel<{ memberOf: Array<{ networkId: string; title: string; prompt: string | null; autoAssign: boolean; isPersonal: boolean; joinedAt: Date; }>; owns: Array<{ networkId: string; title: string; prompt: string | null; memberCount: number; intentCount: number; joinPolicy: string; }>; publicNetworks?: Array<{ networkId: string; title: string; prompt: string | null; memberCount: number; owner: { name: string; avatar: string | null; } | null; }>; stats: { memberOfCount: number; ownsCount: number; publicNetworksCount?: number; scopeNote?: string; }; } | undefined, { memberOf: Array<{ networkId: string; title: string; prompt: string | null; autoAssign: boolean; isPersonal: boolean; joinedAt: Date; }>; owns: Array<{ networkId: string; title: string; prompt: string | null; memberCount: number; intentCount: number; joinPolicy: string; }>; publicNetworks?: Array<{ networkId: string; title: string; prompt: string | null; memberCount: number; owner: { name: string; avatar: string | null; } | null; }>; stats: { memberOfCount: number; ownsCount: number; publicNetworksCount?: number; scopeNote?: string; }; } | import("@langchain/langgraph").OverwriteValue<{ memberOf: Array<{ networkId: string; title: string; prompt: string | null; autoAssign: boolean; isPersonal: boolean; joinedAt: Date; }>; owns: Array<{ networkId: string; title: string; prompt: string | null; memberCount: number; intentCount: number; joinPolicy: string; }>; publicNetworks?: Array<{ networkId: string; title: string; prompt: string | null; memberCount: number; owner: { name: string; avatar: string | null; } | null; }>; stats: { memberOfCount: number; ownsCount: number; publicNetworksCount?: number; scopeNote?: string; }; } | undefined> | undefined, unknown>; /** Output for create/update/delete modes. */ mutationResult: import("@langchain/langgraph").BaseChannel<{ success: boolean; networkId?: string; title?: string; message?: string; error?: string; } | undefined, { success: boolean; networkId?: string; title?: string; message?: string; error?: string; } | import("@langchain/langgraph").OverwriteValue<{ success: boolean; networkId?: string; title?: string; message?: string; error?: string; } | undefined> | undefined, unknown>; /** Error message if graph could not complete. */ error: import("@langchain/langgraph").BaseChannel | null, unknown>; }>;