import type { ControlPlaneStore } from '../control-plane-store.ts'

export type ChannelControlPlaneStore = Pick<ControlPlaneStore,
  | 'createHeadlessAgent'
  | 'updateHeadlessAgent'
  | 'getHeadlessAgent'
  | 'listHeadlessAgents'
  | 'createChannelBinding'
  | 'updateChannelBinding'
  | 'getChannelBinding'
  | 'listChannelBindings'
  | 'upsertChannelIdentity'
  | 'getChannelIdentity'
  | 'findChannelIdentity'
  | 'bindChannelSession'
  | 'getChannelSessionBinding'
  | 'findChannelSessionBindingByThread'
  | 'listChannelSessionBindingsForSession'
  | 'updateChannelCursor'
  | 'createChannelInteraction'
  | 'findChannelInteraction'
  | 'resolveChannelInteraction'
  | 'resolveChannelInteractionWithCommand'
  | 'createChannelDelivery'
  | 'listChannelDeliveries'
  | 'claimNextChannelDelivery'
  | 'ackChannelDelivery'
  | 'listApiTokenChannelBindingGrants'
  | 'claimChannelProviderEvent'
  | 'completeChannelProviderEvent'
  | 'getSession'
  | 'getSessionProjection'
  | 'enqueueSessionCommand'
  | 'recordAuditEvent'
>
