import type { GoalState } from "../domain/types.js"; export declare const OPENCODE2_EXPERIMENTAL_PLUGIN_ID = "bybrawe.open-code-goals.v2-experimental"; type UnknownRecord = Record; export interface OpenCode2ExperimentalContext { options?: Readonly; session: { get(input: { sessionID: string; }): unknown | Promise; hook(name: string, callback: (event: any) => void | Promise): unknown | Promise; }; tool: { transform(callback: (tools: any) => void | Promise): unknown | Promise; }; } export interface OpenCode2ExperimentalToolContext { sessionID: string; agent?: string; messageID?: string; callID?: string; } declare function toolResponse(message: string, goal?: GoalState | null): { output: { message: string; status: import("../domain/types.js").GoalStatus | null; goalID: string | null; revision: number | null; }; content: string; }; /** * Read-only compatibility entrypoint retained for experimental consumers. * Only status/contract reads are permitted until the real OpenCode 2 host can * prove command origin and request-time plugin tool materialization. All * lifecycle mutations fail closed without writing Goal state. */ export declare function executeOpenCode2GoalControl(ctx: OpenCode2ExperimentalContext, rawArguments: string, toolContext: OpenCode2ExperimentalToolContext): Promise>; export declare const OpenCode2GoalsExperimental: { id: string; setup: (ctx: OpenCode2ExperimentalContext) => Promise<() => undefined>; }; export default OpenCode2GoalsExperimental; //# sourceMappingURL=experimental.d.ts.map