import type { DeliveryIntent, TurnLifecycleState } from '@canonmsg/backend-contracts'; export { ACTIVE_TURN_STALE_THRESHOLD_MS, WAITING_INPUT_STALE_THRESHOLD_MS, getTurnStateStaleThresholdMs, isTurnOpen, isTurnStateStale, normalizeTurnMetadata, resolveTurnMessageSemantics, shouldPromoteConversationMessage, shouldTriggerAgentTurn, } from '@canonmsg/backend-contracts'; export type { DeliveryIntent, InboundDisposition, TriggerDecision, TurnLifecycleState, TurnMessageSemantics, TurnMetadata, } from '@canonmsg/backend-contracts'; export interface RuntimeCapabilities { supportsInterrupt: boolean; supportsInputInterrupt: boolean; supportsQueue: boolean; supportsInterleave: boolean; supportsRequiresAction: boolean; supportsNonFinalPermanentMessages: boolean; } export declare const FINAL_MESSAGE_HANDOFF_MS = 750; export interface TurnState { turnId?: string | null; state: TurnLifecycleState; queueDepth: number; currentSpeakerId?: string | null; lastAcceptedIntent?: DeliveryIntent | null; activeMessageIds?: string[]; capabilities?: RuntimeCapabilities; openedAt?: number; turnUpdatedAt?: number | null; updatedAt?: number; completedAt?: number | null; } export declare const DEFAULT_RUNTIME_CAPABILITIES: RuntimeCapabilities; /** * Contact-graph and admission actions a Canon host runtime exposes through the * agent SDK. Plugins consult this to decide which tools to register on the * LLM's behalf — e.g., whether to advertise a `block_user` tool. A flag is * `true` only when the runtime has both the SDK wrapper *and* a tool surface * wired up that calls it. Until plugin tool wiring ships, runtimes should * advertise `HOST_ADMISSION_ACTIONS_DISABLED` so consumers don't render UI * for actions the runtime can't actually perform. */ export interface HostAdmissionActionCapabilities { blockUser: boolean; unblockUser: boolean; removeContact: boolean; requestContact: boolean; reachOut: boolean; } export declare const HOST_ADMISSION_ACTION_CAPABILITIES: HostAdmissionActionCapabilities; export declare const HOST_ADMISSION_ACTIONS_DISABLED: HostAdmissionActionCapabilities; export declare function normalizeTurnState(value: unknown): TurnState | null;