export declare const SEMANTIC_PRIVATE_AUTHORITY_OFFER_TTL_MS: number; export declare const SEMANTIC_PRIVATE_AUTHORITY_OFFER_LIMIT = 512; export declare const SEMANTIC_APPROVAL_AUTHORITY_KIND = "approval"; export declare const SEMANTIC_INTERACTION_AUTHORITY_KIND = "interaction"; export declare const SEMANTIC_INTERACTION_AUTHORITY_SUBJECT_KINDS: readonly ["managed_turn", "terminal_watch"]; export type SemanticInteractionAuthoritySubjectKind = typeof SEMANTIC_INTERACTION_AUTHORITY_SUBJECT_KINDS[number]; export interface SemanticPrivateAuthorityTarget { type: string; id: string; } export interface SemanticPrivateAuthorityOfferKey { sessionKey: string; sessionId: string; kind: string; target: SemanticPrivateAuthorityTarget; } export interface SemanticPrivateAuthorityOfferPayload extends Readonly> { readonly args?: Readonly>; readonly fingerprint?: string; readonly invalidated?: boolean; } export declare function semanticApprovalAuthorityOfferKey(sessionKey: string, sessionId: string, target: SemanticPrivateAuthorityTarget): SemanticPrivateAuthorityOfferKey; /** * Legacy managed-Turn overload retained while callers migrate to the explicit * subject-aware form below. */ export declare function semanticInteractionAuthorityOfferKey(sessionKey: string, sessionId: string, turnId: string, interactionId: string): SemanticPrivateAuthorityOfferKey; export declare function semanticInteractionAuthorityOfferKey(sessionKey: string, sessionId: string, subjectKind: SemanticInteractionAuthoritySubjectKind, subjectId: string, interactionId: string): SemanticPrivateAuthorityOfferKey; export declare function semanticManagedTurnInteractionAuthorityOfferKey(sessionKey: string, sessionId: string, turnId: string, interactionId: string): SemanticPrivateAuthorityOfferKey; export declare function semanticTerminalWatchInteractionAuthorityOfferKey(sessionKey: string, sessionId: string, watchId: string, interactionId: string): SemanticPrivateAuthorityOfferKey; /** * Invalidates every interaction response offer previously displayed for one * exact subject in one exact controller conversation. Status uses this as a * refresh boundary before it publishes at most one offer from the new * snapshot, so an old interaction id cannot remain actionable for the rest of * its TTL after the terminal UI disappears or changes. */ export declare function invalidateSemanticInteractionAuthorityOffersForSubject(api: object, sessionKey: string, sessionId: string, subjectKind: SemanticInteractionAuthoritySubjectKind, subjectId: string, nowMs?: number): number; export declare function rememberSemanticPrivateAuthorityOffer(api: object, key: SemanticPrivateAuthorityOfferKey, payload: Record, nowMs?: number): void; export declare function peekSemanticPrivateAuthorityOffer(api: object, key: SemanticPrivateAuthorityOfferKey, nowMs?: number): Payload | undefined; export declare function consumeSemanticPrivateAuthorityOffer(api: object, key: SemanticPrivateAuthorityOfferKey, nowMs?: number): Payload | undefined;