import { CodexNativeClient } from "./codex-native-client.js"; import { type CodexNativeTransportPort } from "./codex-native-task-service.js"; import type { CallbackAttemptOutcome, CallbackTransportDeliverInput } from "./callback-transport.js"; import type { CodexNativeClientOptions, CodexNativeIdentity, CodexNativeThread } from "./codex-native-types.js"; export type CodexNativeClientPort = Pick; export interface CodexNativeRuntimeOptions { storeDir: string; codexHomes: string[]; openclawBin?: string; clientFactory?(options: CodexNativeClientOptions): Promise; callbackDeliver?(input: CallbackTransportDeliverInput): Promise | CallbackAttemptOutcome; } export interface CodexNativeCatalogEntry extends CodexNativeIdentity { nativeId: string; thread: CodexNativeThread; backendVersion: string; } /** Keep subscriptions alive across polling; reconnects replay pending native requests. */ export declare function createCodexNativeRuntime(options: CodexNativeRuntimeOptions): { tasks: import("./codex-native-task-service.js").CodexNativeTaskService; responses: { respond: (input: import("./codex-native-response-service.js").NativeResponseInput, watchAuthority?: { turnId: string; check(): void; }) => Promise; reconcile: (id: string) => Promise; status: (id: string) => import("./codex-native-response-service.js").CodexNativeResponseRecord; list: () => import("./codex-native-response-service.js").CodexNativeResponseRecord[]; respondWatch(watchId: string, input: Omit): Promise; }; transport: CodexNativeTransportPort; catalog: { discover(): Promise<{ sessions: CodexNativeCatalogEntry[]; errors: { codexHome: string; error_code: string; }[]; }>; }; clientFor: (identity: Pick) => Promise; read: (identity: CodexNativeIdentity, exactTurnId?: string) => Promise; reconcile(watchId: string): Promise; close(): Promise; }; export type CodexNativeRuntime = ReturnType;