import type { ChannelApprovalCapability, ChannelApprovalNativeAdapter } from "../channels/plugins/types.adapters.js"; import type { OpenClawConfig } from "../config/types.openclaw.js"; import { CHANNEL_APPROVAL_NATIVE_RUNTIME_CONTEXT_CAPABILITY, createLazyChannelApprovalNativeRuntimeAdapter } from "./approval-handler-adapter-runtime.js"; import type { ApprovalRequest, ApprovalResolved, ChannelApprovalKind, ChannelApprovalNativeRuntimeAdapter, ChannelApprovalNativeRuntimeSpec } from "./approval-handler-runtime-types.js"; import type { ChannelNativeApprovalDeliveryCallbacks, ChannelNativeApprovalTransportSpec } from "./approval-native-runtime-types.js"; import type { ExpiredApprovalView, PendingApprovalView, ResolvedApprovalView } from "./approval-view-model.types.js"; import type { ExecApprovalChannelRuntime } from "./exec-approval-channel-runtime.js"; import type { ExecApprovalChannelRuntimeEventKind } from "./exec-approval-channel-runtime.types.js"; export type { ApprovalActionView, ApprovalMetadataView, ApprovalViewModel, ExecApprovalExpiredView, ExecApprovalPendingView, ExecApprovalResolvedView, ExpiredApprovalView, PendingApprovalView, PluginApprovalExpiredView, PluginApprovalPendingView, PluginApprovalResolvedView, ResolvedApprovalView, } from "./approval-view-model.types.js"; export { CHANNEL_APPROVAL_NATIVE_RUNTIME_CONTEXT_CAPABILITY, createLazyChannelApprovalNativeRuntimeAdapter, }; export type { ChannelApprovalCapabilityHandlerContext, ChannelApprovalNativeAvailabilityAdapter, ChannelApprovalNativeFinalAction, ChannelApprovalNativeInteractionAdapter, ChannelApprovalNativeObserveAdapter, ChannelApprovalNativePresentationAdapter, ChannelApprovalNativeRuntimeAdapter, ChannelApprovalNativeRuntimeSpec, ChannelApprovalNativeTransportAdapter, } from "./approval-handler-runtime-types.js"; export type ChannelApprovalHandler = ExecApprovalChannelRuntime; export declare function createChannelApprovalNativeRuntimeAdapter(spec: ChannelApprovalNativeRuntimeSpec): ChannelApprovalNativeRuntimeAdapter; type ChannelApprovalHandlerRuntimeSpec = { label: string; clientDisplayName: string; cfg: OpenClawConfig; gatewayUrl?: string; eventKinds?: readonly ExecApprovalChannelRuntimeEventKind[]; channel?: string; channelLabel?: string; accountId?: string | null; nativeAdapter?: ChannelApprovalNativeAdapter | null; resolveApprovalKind?: (request: TRequest) => ChannelApprovalKind; isConfigured: () => boolean; shouldHandle: (request: TRequest) => boolean; nowMs?: () => number; }; type ChannelApprovalHandlerContentSpec = { buildPendingContent: (params: { request: TRequest; approvalKind: ChannelApprovalKind; nowMs: number; }) => TPendingContent | Promise; }; type ChannelApprovalHandlerTransportSpec = ChannelNativeApprovalTransportSpec; type ChannelApprovalHandlerLifecycleSpec = ChannelNativeApprovalDeliveryCallbacks & { finalizeResolved: (params: { request: TRequest; resolved: TResolved; entries: TPendingEntry[]; }) => Promise; finalizeExpired?: (params: { request: TRequest; entries: TPendingEntry[]; }) => Promise; onStopped?: () => Promise | void; }; export type ChannelApprovalHandlerAdapter = { runtime: ChannelApprovalHandlerRuntimeSpec; content: ChannelApprovalHandlerContentSpec; transport: ChannelApprovalHandlerTransportSpec; lifecycle: ChannelApprovalHandlerLifecycleSpec; }; export declare function createChannelApprovalHandler(adapter: ChannelApprovalHandlerAdapter): ChannelApprovalHandler; export declare function createChannelApprovalHandlerFromCapability(params: { capability?: Pick | null; label: string; clientDisplayName: string; channel: string; channelLabel: string; cfg: OpenClawConfig; accountId?: string | null; gatewayUrl?: string; context?: unknown; nowMs?: () => number; }): Promise;