import type { ReferenceGitSource, ReferenceLocalSource } from "@opencode/client" import type { ReferenceApi } from "@opencode/client/effect/api" import type { Effect } from "effect" import type { Transform } from "./registration.js" export interface ReferenceEditor { add(name: string, source: ReferenceLocalSource | ReferenceGitSource): void remove(name: string): void list(): readonly (readonly [string, ReferenceLocalSource | ReferenceGitSource])[] get(name: string): ReferenceLocalSource | ReferenceGitSource | undefined } export interface ReferenceDomain extends ReferenceApi { readonly transform: Transform readonly reload: () => Effect.Effect }