import { type CoreCommandEnvelope } from "@getuserfeedback/protocol"; import { type EventHandleInvalidated } from "@getuserfeedback/protocol/internal/core-handle-invalidation"; import { type EventCommandSettled } from "@getuserfeedback/protocol/internal/core-host-command-settlement"; import type { CoreWebViewHostConnection } from "./core-webview-host-controller.js"; import { createNativeHostActionRpcHandler } from "./native-host-action-rpc.js"; import { createNativeLinkRouterRpcHandler } from "./native-link-router-rpc.js"; export type NativeCoreCommandChannel = { post: (envelope: CoreCommandEnvelope) => void; subscribe: (listener: (message: EventCommandSettled) => void) => () => void; }; type OwnedNativeCoreCommandChannel = { channel: NativeCoreCommandChannel; dispose: () => void; }; export declare function createNativeCoreCommandChannel(input: { coreConnection: CoreWebViewHostConnection; hostActions?: { getHandler: Parameters[0]["getHandler"]; getActiveViewIds: () => readonly string[]; instanceId: string; subscribeToViewActivity: (listener: () => void) => () => void; }; linkRouter?: { getActiveViewIds: () => readonly string[]; getRouter: Parameters[0]["getRouter"]; instanceId: string; }; now?: () => number; onHandleInvalidated?: (message: EventHandleInvalidated) => void; onHostActionError?: (error: Error) => void; onInvalidMessage?: (error: Error, value: unknown) => void; onSessionFailure?: (error: Error) => void; }): OwnedNativeCoreCommandChannel; export {};