/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { z } from 'zod'; /** * Zod schema for validating a file context from the IDE. */ export declare const FileSchema: z.ZodObject<{ path: z.ZodString; timestamp: z.ZodNumber; isActive: z.ZodOptional; selectedText: z.ZodOptional; cursor: z.ZodOptional>; }, "strip", z.ZodTypeAny, { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }, { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }>; export type File = z.infer; export declare const IdeContextSchema: z.ZodObject<{ workspaceState: z.ZodOptional; selectedText: z.ZodOptional; cursor: z.ZodOptional>; }, "strip", z.ZodTypeAny, { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }, { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { openFiles?: { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; }, { openFiles?: { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { workspaceState?: { openFiles?: { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }, { workspaceState?: { openFiles?: { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }>; export type IdeContext = z.infer; /** * Zod schema for validating the 'ide/contextUpdate' notification from the IDE. */ export declare const IdeContextNotificationSchema: z.ZodObject<{ method: z.ZodLiteral<"ide/contextUpdate">; params: z.ZodObject<{ workspaceState: z.ZodOptional; selectedText: z.ZodOptional; cursor: z.ZodOptional>; }, "strip", z.ZodTypeAny, { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }, { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { openFiles?: { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; }, { openFiles?: { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { workspaceState?: { openFiles?: { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }, { workspaceState?: { openFiles?: { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }>; }, "strip", z.ZodTypeAny, { method: "ide/contextUpdate"; params: { workspaceState?: { openFiles?: { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }; }, { method: "ide/contextUpdate"; params: { workspaceState?: { openFiles?: { timestamp: number; path: string; cursor?: { line: number; character: number; } | undefined; isActive?: boolean | undefined; selectedText?: string | undefined; }[] | undefined; } | undefined; }; }>; type IdeContextSubscriber = (ideContext: IdeContext | undefined) => void; /** * Creates a new store for managing the IDE's context. * This factory function encapsulates the state and logic, allowing for the creation * of isolated instances, which is particularly useful for testing. * * @returns An object with methods to interact with the IDE context. */ export declare function createIdeContextStore(): { setIdeContext: (newIdeContext: IdeContext) => void; getIdeContext: () => IdeContext | undefined; subscribeToIdeContext: (subscriber: IdeContextSubscriber) => () => void; clearIdeContext: () => void; }; /** * The default, shared instance of the IDE context store for the application. */ export declare const ideContext: { setIdeContext: (newIdeContext: IdeContext) => void; getIdeContext: () => IdeContext | undefined; subscribeToIdeContext: (subscriber: IdeContextSubscriber) => () => void; clearIdeContext: () => void; }; export {};