import type { WebSearch } from "@opencode/schema/websearch" import type { WebSearchApi } from "@opencode/client/effect/api" import type { Effect } from "effect" import type { Transform } from "./registration.js" export interface WebSearchDefinition { readonly id: string readonly name: string readonly execute: (input: WebSearch.ProviderInput) => Effect.Effect } export interface WebSearchDomain extends WebSearchApi { readonly transform: Transform readonly reload: () => Effect.Effect } export interface WebSearchEditor { add(definition: WebSearchDefinition): void readonly default: { get(): string | false | undefined set(selection: string | false): void } }