import type { Context } from '@deepseek-ai/cordis'; import type { Agent, AgentHandle, CreateAgentOptions, ResumeAgentOptions } from '@deepseek-ai/dsh-agent'; import type { AssistantPolicyService } from '@dsh-enhanced/assistant-policy'; import type { AcceptanceHandle } from './acceptance.js'; import type { DeliveryStore } from './store.js'; import { DeliverySessionLeases } from './session-lease-runtime.js'; import type { ConversationBinding, ExternalPrincipalKey, InboundEnvelope } from './types.js'; export interface NativeWebOwnerConfig { principal: ExternalPrincipalKey; workspace: string; preset: string; maxExecutionMs?: number; } export interface NativeWebOwnerAccess { create(options: CreateAgentOptions): Promise; resume(options: ResumeAgentOptions): Promise; get(sessionId: string): Agent | undefined; assertSession(sessionId: string): void; ownsSession(sessionId: string): boolean; prompt(input: { sessionId: string; requestId: string; text: string; content: readonly unknown[]; }, invoke: () => Promise, signal: AbortSignal): Promise; notifications(sessionId: string): ReadonlyArray<{ id: string; text: string; createdAt: number; }>; dispose(): Promise; } interface OwnerPort { assertActive(): void; policyRef: string; leaseMs: number; prepare(binding: ConversationBinding, envelope: InboundEnvelope): AcceptanceHandle | undefined; complete(handle: AcceptanceHandle, input: { status: 'succeeded' | 'failed' | 'cancelled' | 'unknown'; quiescent: boolean; }): Promise; beginExecution(binding: ConversationBinding, envelope: InboundEnvelope): string | undefined; completeExecution(inboxId: string, input: { status: 'succeeded' | 'failed' | 'cancelled' | 'unknown'; quiescent: boolean; }): void; claimed(agent: Agent, envelope: InboundEnvelope, turn: number): void; released(): void; notifications(binding: ConversationBinding): ReadonlyArray<{ id: string; text: string; createdAt: number; }>; } /** Fixed single-owner Host capability. No RPC payload may choose its principal or scope. */ export declare class NativeWebOwner implements NativeWebOwnerAccess { #private; private readonly ownerCtx; private readonly store; private readonly leases; private readonly policy; private readonly port; constructor(ownerCtx: Context, store: DeliveryStore, leases: DeliverySessionLeases, policy: AssistantPolicyService, port: OwnerPort, config: NativeWebOwnerConfig); assertSession(sessionId: string): void; ownsSession(sessionId: string): boolean; notifications(sessionId: string): ReadonlyArray<{ id: string; text: string; createdAt: number; }>; get(sessionId: string): Agent | undefined; create(options: CreateAgentOptions): Promise; resume(options: ResumeAgentOptions): Promise; prompt(input: { sessionId: string; requestId: string; text: string; content: readonly unknown[]; }, invoke: () => Promise, signal: AbortSignal): Promise; dispose(): Promise; } export {}; //# sourceMappingURL=native-web-owner.d.ts.map