import type { NativeChatSelectionSnapshot } from '../native-chat-selection-contract.js'; import type { ArkmeSourceItem, ArkmeSourceSendResult } from '../types.js'; export interface NativeForwardResult { completed: boolean; } export interface NativeForwardDelivery { readonly comment: string | undefined; send(target: ArkmeSourceItem, comment: string, signal: AbortSignal): Promise; } export interface NativeForwardContent { snapshot: NativeChatSelectionSnapshot; userId: number; delivery: NativeForwardDelivery; } export interface NativeForwardEntry { open(content: NativeForwardContent, signal: AbortSignal, caller: Window): Promise; } export declare const NATIVE_FORWARD_ENTRY = "__arkmeNativeForwardEntry"; export type NativeForwardWindow = Window & { [NATIVE_FORWARD_ENTRY]?: NativeForwardEntry; }; /** The native frame submits local content; only Arkme owns the target picker. */ export declare function openNativeForward(doc: Document, content: NativeForwardContent, signal: AbortSignal): Promise; export declare function isNativeForwardCaller(host: Window, caller: Window): boolean; export declare function nativeForwardPreview(snapshot: NativeChatSelectionSnapshot): { title: string; subtitle: string; }; export interface NativeForwardIdentity { requestId: string; recordUid: string; commentRecordUid: string; sendAtMillis: number; } /** Keep retry identity and comment with the frozen content, not with signed target refs. */ export declare function nativeForwardDelivery(send: (target: ArkmeSourceItem, identity: NativeForwardIdentity, comment: string, signal: AbortSignal) => Promise): NativeForwardDelivery; //# sourceMappingURL=native-forward-entry.d.ts.map