@proteos/sdk 0.52.0 → 0.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { A as AuditFields, L as ListOptions, a as Attribute, U as UserRef$2, P as PageIterator, b as ListResult, c as ProteosClient, F as FileRef, d as PrincipalRef, e as PublicAccessOperation } from './types-DHhuGDpV.cjs';
2
- export { f as App, g as AppConfiguration, h as AppConfigurationSchema, i as AppConfigurationService, j as AppHome, k as AppHomeSchema, l as AppHomeType, m as AppSchema, n as AppService, o as ArrayAttributeMeta, p as AttributeAccessRule, q as AttributeRestrictions, r as AttributeSchema, s as AttributeType, t as AuditFieldsSchema, C as CURRENT_USER_DEFAULT, u as ClientOptions, v as Column, w as ColumnSchema, x as ComparisonOperator, y as Component, z as ComponentSchema, B as ComponentService, D as CreateAppConfigurationRequest, E as CreateAppRequest, G as CreateComponentRequest, H as CreateDesignReferenceRequest, I as CreateEntityExtensionRequest, J as CreateEntityRequest, K as CreateListExtensionRequest, M as CreateListRequest, N as CreateListViewRequest, O as CreateMenuConfigurationExtensionRequest, Q as CreateMenuConfigurationRequest, R as CreatePageExtensionRequest, S as CreatePageRequest, T as CreateVariableRequest, V as CurrencyAttributeMeta, W as CurrencyAttributeMetaSchema, X as CurrencySymbolSide, Y as CurrencyValue, Z as CurrentUserDefault, _ as DEFAULT_OPTIONS, $ as DEFAULT_PAGE_SIZE, a0 as DONE, a1 as DeployModuleRequest, a2 as DesignReference, a3 as DesignReferenceContent, a4 as DesignReferenceSchema, a5 as DesignReferenceService, a6 as Done, a7 as Entity, a8 as EntityExtension, a9 as EntityExtensionSchema, aa as EntityExtensionService, ab as EntitySchema, ac as EntityService, ad as EntityWithSchema, ae as EntityWithSchemaSchema, af as EnumAttributeMeta, ag as EnumValue, ah as ExtensionPosition, ai as ExtensionPositionSchema, aj as FileAttributeMeta, ak as FileRefSchema, al as FilterElement, am as FilterElementSchema, an as FilterGroup, ao as FilterGroupSchema, ap as List, aq as ListAppConfigurationsOptions, ar as ListAppsOptions, as as ListComponentsOptions, at as ListDesignReferencesOptions, au as ListEntitiesOptions, av as ListEntityExtensionsOptions, aw as ListExtension, ax as ListExtensionColumnPlacement, ay as ListExtensionColumnPlacementSchema, az as ListExtensionSchema, aA as ListExtensionService, aB as ListFn, aC as ListListExtensionsOptions, aD as ListListViewsOptions, aE as ListListsOptions, aF as ListMenuConfigurationExtensionsOptions, aG as ListMenuConfigurationsOptions, aH as ListModulesOptions, aI as ListPageExtensionsOptions, aJ as ListPagesOptions, aK as ListSchema, aL as ListService, aM as ListVariablesOptions, aN as ListView, aO as ListViewSchema, aP as ListViewService, aQ as LogicalOperator, aR as MENU_CONFIGURATION_EXTENSION_ANCHOR_ITEMS, aS as MenuConfiguration, aT as MenuConfigurationExtension, aU as MenuConfigurationExtensionPlacement, aV as MenuConfigurationExtensionPlacementSchema, aW as MenuConfigurationExtensionPosition, aX as MenuConfigurationExtensionPositionSchema, aY as MenuConfigurationExtensionSchema, aZ as MenuConfigurationExtensionService, a_ as MenuConfigurationSchema, a$ as MenuConfigurationService, b0 as MenuItem, b1 as MenuItemSchema, b2 as MenuItemType, b3 as MetaClient, b4 as MetaListOptions, b5 as Module, b6 as ModuleSchema, b7 as ModuleService, b8 as ModuleStatus, b9 as OnDeleteAction, ba as OnDeleteActionSchema, bb as PAGE_EXTENSION_ANCHOR_MAIN, bc as PAGE_EXTENSION_ANCHOR_SIDE_PANEL, bd as PLATFORM_ATTRIBUTE_NAMES, be as PLATFORM_USER_ID, bf as Page, bg as PageAction, bh as PageActionKind, bi as PageActionSchema, bj as PageExtension, bk as PageExtensionPlacement, bl as PageExtensionPlacementSchema, bm as PageExtensionSchema, bn as PageExtensionService, bo as PageLayout, bp as PageLayoutSchema, bq as PageSchema, br as PageService, bs as PageType, bt as PublicPageComponent, bu as PublicPageResponse, bv as RelationAttributeMeta, bw as RelationAttributeMetaSchema, bx as RequestOptions, by as ResolvedClientOptions, bz as ResponseMeta, bA as ResponseMetaSchema, bB as SortConfig, bC as SortConfigSchema, bD as SortDirection, bE as Timestamps, bF as TokenProvider, bG as UpdateAppConfigurationRequest, bH as UpdateAppRequest, bI as UpdateComponentRequest, bJ as UpdateDesignReferenceRequest, bK as UpdateEntityExtensionRequest, bL as UpdateEntityRequest, bM as UpdateListExtensionRequest, bN as UpdateListRequest, bO as UpdateListViewRequest, bP as UpdateMenuConfigurationExtensionRequest, bQ as UpdateMenuConfigurationRequest, bR as UpdatePageExtensionRequest, bS as UpdatePageRequest, bT as UpdateVariableRequest, bU as UserRefSchema, bV as UserType, bW as Variable, bX as VariableSchema, bY as VariableService, bZ as acceptsCurrentUserDefault, b_ as allCurrencyCodes, b$ as createIterator, c0 as createListResultSchema, c1 as currencyLabel, c2 as currencySymbol, c3 as currencySymbolSide, c4 as formatAmount, c5 as formatMoney, c6 as isCurrentUserDefault, c7 as isPlatformAttributeName, c8 as localeNumberSeparators, c9 as parseAmount, ca as parseCurrencyMeta, cb as parseFileMeta, cc as parseRelationMeta, cd as platformAttributes, ce as resolveOptions } from './types-DHhuGDpV.cjs';
1
+ import { A as AuditFields, L as ListOptions, a as Attribute, U as UserRef$2, P as PageIterator, b as ListResult, c as ProteosClient, F as FileRef, d as PrincipalRef, R as ResponseMeta$1, e as PublicAccessOperation } from './types-amvSTwJy.cjs';
2
+ export { f as App, g as AppConfiguration, h as AppConfigurationSchema, i as AppConfigurationService, j as AppHome, k as AppHomeSchema, l as AppHomeType, m as AppSchema, n as AppService, o as ArrayAttributeMeta, p as AttributeAccessRule, q as AttributeRestrictions, r as AttributeSchema, s as AttributeType, t as AuditFieldsSchema, C as CURRENT_USER_DEFAULT, u as ClientOptions, v as Column, w as ColumnSchema, x as ComparisonOperator, y as Component, z as ComponentSchema, B as ComponentService, D as ContactAddressAttributeKind, E as ContactAddressAttributeMeta, G as ContactAddressAttributeMetaSchema, H as ContactBindingDuplicatePolicy, I as CreateAppConfigurationRequest, J as CreateAppRequest, K as CreateComponentRequest, M as CreateDesignReferenceRequest, N as CreateEntityExtensionRequest, O as CreateEntityRequest, Q as CreateListExtensionRequest, S as CreateListRequest, T as CreateListViewRequest, V as CreateMenuConfigurationExtensionRequest, W as CreateMenuConfigurationRequest, X as CreatePageExtensionRequest, Y as CreatePageRequest, Z as CreateVariableRequest, _ as CurrencyAttributeMeta, $ as CurrencyAttributeMetaSchema, a0 as CurrencySymbolSide, a1 as CurrencyValue, a2 as CurrentUserDefault, a3 as DEFAULT_OPTIONS, a4 as DEFAULT_PAGE_SIZE, a5 as DONE, a6 as DeployModuleRequest, a7 as DesignReference, a8 as DesignReferenceContent, a9 as DesignReferenceSchema, aa as DesignReferenceService, ab as Done, ac as Entity, ad as EntityContactBinding, ae as EntityContactBindingSchema, af as EntityExtension, ag as EntityExtensionSchema, ah as EntityExtensionService, ai as EntitySchema, aj as EntityService, ak as EntityWithSchema, al as EntityWithSchemaSchema, am as EnumAttributeMeta, an as EnumValue, ao as ExtensionPosition, ap as ExtensionPositionSchema, aq as FileAttributeMeta, ar as FileRefSchema, as as FilterElement, at as FilterElementSchema, au as FilterGroup, av as FilterGroupSchema, aw as List, ax as ListAppConfigurationsOptions, ay as ListAppsOptions, az as ListComponentsOptions, aA as ListDesignReferencesOptions, aB as ListEntitiesOptions, aC as ListEntityExtensionsOptions, aD as ListExtension, aE as ListExtensionColumnPlacement, aF as ListExtensionColumnPlacementSchema, aG as ListExtensionSchema, aH as ListExtensionService, aI as ListFn, aJ as ListListExtensionsOptions, aK as ListListViewsOptions, aL as ListListsOptions, aM as ListMenuConfigurationExtensionsOptions, aN as ListMenuConfigurationsOptions, aO as ListModulesOptions, aP as ListPageExtensionsOptions, aQ as ListPagesOptions, aR as ListSchema, aS as ListService, aT as ListVariablesOptions, aU as ListView, aV as ListViewSchema, aW as ListViewService, aX as LogicalOperator, aY as MENU_CONFIGURATION_EXTENSION_ANCHOR_ITEMS, aZ as MenuConfiguration, a_ as MenuConfigurationExtension, a$ as MenuConfigurationExtensionPlacement, b0 as MenuConfigurationExtensionPlacementSchema, b1 as MenuConfigurationExtensionPosition, b2 as MenuConfigurationExtensionPositionSchema, b3 as MenuConfigurationExtensionSchema, b4 as MenuConfigurationExtensionService, b5 as MenuConfigurationSchema, b6 as MenuConfigurationService, b7 as MenuItem, b8 as MenuItemSchema, b9 as MenuItemType, ba as MetaClient, bb as MetaListOptions, bc as Module, bd as ModuleSchema, be as ModuleService, bf as ModuleStatus, bg as OnDeleteAction, bh as OnDeleteActionSchema, bi as PAGE_EXTENSION_ANCHOR_MAIN, bj as PAGE_EXTENSION_ANCHOR_SIDE_PANEL, bk as PLATFORM_ATTRIBUTE_NAMES, bl as PLATFORM_USER_ID, bm as Page, bn as PageAction, bo as PageActionKind, bp as PageActionSchema, bq as PageExtension, br as PageExtensionPlacement, bs as PageExtensionPlacementSchema, bt as PageExtensionSchema, bu as PageExtensionService, bv as PageLayout, bw as PageLayoutSchema, bx as PageSchema, by as PageService, bz as PageType, bA as PublicPageComponent, bB as PublicPageResponse, bC as RelationAttributeMeta, bD as RelationAttributeMetaSchema, bE as RequestOptions, bF as ResolvedClientOptions, bG as ResponseMetaSchema, bH as SortConfig, bI as SortConfigSchema, bJ as SortDirection, bK as Timestamps, bL as TokenProvider, bM as UpdateAppConfigurationRequest, bN as UpdateAppRequest, bO as UpdateComponentRequest, bP as UpdateDesignReferenceRequest, bQ as UpdateEntityExtensionRequest, bR as UpdateEntityRequest, bS as UpdateListExtensionRequest, bT as UpdateListRequest, bU as UpdateListViewRequest, bV as UpdateMenuConfigurationExtensionRequest, bW as UpdateMenuConfigurationRequest, bX as UpdatePageExtensionRequest, bY as UpdatePageRequest, bZ as UpdateVariableRequest, b_ as UserRefSchema, b$ as UserType, c0 as Variable, c1 as VariableSchema, c2 as VariableService, c3 as acceptsCurrentUserDefault, c4 as allCurrencyCodes, c5 as createIterator, c6 as createListResultSchema, c7 as currencyLabel, c8 as currencySymbol, c9 as currencySymbolSide, ca as formatAmount, cb as formatMoney, cc as isCurrentUserDefault, cd as isPlatformAttributeName, ce as localeNumberSeparators, cf as parseAmount, cg as parseContactAddressMeta, ch as parseCurrencyMeta, ci as parseFileMeta, cj as parseRelationMeta, ck as platformAttributes, cl as resolveOptions } from './types-amvSTwJy.cjs';
3
3
  import { z } from 'zod';
4
4
 
5
5
  /**
@@ -2600,6 +2600,12 @@ interface Connector {
2600
2600
  has_default_app_credentials?: boolean;
2601
2601
  config_schema?: Attribute[];
2602
2602
  methods: ConnectorMethod[];
2603
+ /**
2604
+ * Coarse, provider-neutral tags a first-party service filters the catalog
2605
+ * by (`calendar`: the grant can drive the platform calendar mirror).
2606
+ * snake_case, declared by the manifest.
2607
+ */
2608
+ capabilities?: string[];
2603
2609
  origin: 'pre_built' | 'custom';
2604
2610
  module_slug?: string;
2605
2611
  status: 'active' | 'inactive';
@@ -2663,6 +2669,8 @@ interface ListConnectorsQuery {
2663
2669
  page?: number;
2664
2670
  page_size?: number;
2665
2671
  status?: string;
2672
+ /** Only connectors declaring this capability (e.g. `calendar`). */
2673
+ capability?: string;
2666
2674
  }
2667
2675
  interface ListConnectorConnectionsQuery {
2668
2676
  page?: number;
@@ -2671,7 +2679,7 @@ interface ListConnectorConnectionsQuery {
2671
2679
  scope?: ConnectionScope$1;
2672
2680
  status?: ConnectionStatus$1;
2673
2681
  }
2674
- interface ListResponse$1<T> {
2682
+ interface ListResponse$2<T> {
2675
2683
  data: T[];
2676
2684
  meta: {
2677
2685
  page: number;
@@ -2699,14 +2707,14 @@ declare class ConnectorClient {
2699
2707
  }
2700
2708
  /** The connector manifest catalog (pre-built + org-custom). */
2701
2709
  interface ConnectorCatalogService {
2702
- list(query?: ListConnectorsQuery): Promise<ListResponse$1<Connector>>;
2710
+ list(query?: ListConnectorsQuery): Promise<ListResponse$2<Connector>>;
2703
2711
  get(key: string): Promise<Connector>;
2704
2712
  /** A connector's callable methods (sugar over get().methods). */
2705
2713
  listMethods(key: string): Promise<ConnectorMethod[]>;
2706
2714
  }
2707
2715
  /** Configured integration instances + method invocation. */
2708
2716
  interface ConnectorConnectionService {
2709
- list(query?: ListConnectorConnectionsQuery): Promise<ListResponse$1<ConnectorConnection>>;
2717
+ list(query?: ListConnectorConnectionsQuery): Promise<ListResponse$2<ConnectorConnection>>;
2710
2718
  get(id: string): Promise<ConnectorConnection>;
2711
2719
  create(request: CreateConnectorConnectionRequest): Promise<ConnectorConnection>;
2712
2720
  update(id: string, request: UpdateConnectorConnectionRequest): Promise<ConnectorConnection>;
@@ -3827,7 +3835,13 @@ type ListConversationFilterEventsQuery = PaginationQuery;
3827
3835
  * 'contact-address'.
3828
3836
  */
3829
3837
  type RecipientKind = 'contact-address' | 'room';
3830
- type ContactAddressKind = 'email' | 'phone' | 'slack' | 'linkedin' | 'telegram' | 'instagram' | 'messenger' | 'x' | 'whatsapp';
3838
+ type ContactAddressKind = 'email' | 'phone' | 'slack'
3839
+ /** LinkedIn's stable profile id (ACoAA… / ACwAA… / AE…) — what sending needs. */
3840
+ | 'linkedin_id'
3841
+ /** The `/in/<slug>` public identifier — what humans and records hold. */
3842
+ | 'linkedin_public_identifier'
3843
+ /** Legacy alias of `linkedin_id` (rows written before the kind split); read-only. */
3844
+ | 'linkedin' | 'telegram' | 'instagram' | 'messenger' | 'x' | 'whatsapp';
3831
3845
  type ContactAddressSource = 'sync' | 'ingest' | 'manual' | 'merge';
3832
3846
  type ContactSource = 'sync' | 'ingest' | 'manual' | 'merge';
3833
3847
  type ContactStatus = 'active' | 'merged' | 'archived' | 'erased';
@@ -4026,10 +4040,23 @@ interface AttachContactAddressRequest {
4026
4040
  value: string;
4027
4041
  name?: string;
4028
4042
  }
4043
+ /** How a contact→record edge came to be: a user's explicit link, or the
4044
+ * binding maintained from the record's contact-address attributes (exactly one
4045
+ * per record; never unlinked by hand). */
4046
+ type ContactRecordLinkSource = 'manual' | 'record';
4047
+ /** One canonical address key of a contact (the dedup backbone). */
4048
+ interface ContactAddressKey {
4049
+ kind: ContactAddressKind;
4050
+ value: string;
4051
+ scope?: string;
4052
+ raw_value?: string;
4053
+ }
4029
4054
  /**
4030
4055
  * A directed edge from a contact to a business record (entity_slug +
4031
4056
  * record_id). Bare — no role; the relationship's semantics come from the
4032
- * target entity. Immutable once created.
4057
+ * target entity. A `manual` link is immutable once created; a `record`
4058
+ * binding repoints/refreshes as the record's addresses change and carries the
4059
+ * keys the record contributed (`address_keys`).
4033
4060
  */
4034
4061
  interface ContactRecordLink {
4035
4062
  id: string;
@@ -4037,8 +4064,12 @@ interface ContactRecordLink {
4037
4064
  contact_id: string;
4038
4065
  entity_slug: string;
4039
4066
  record_id: string;
4067
+ source: ContactRecordLinkSource;
4068
+ address_keys?: ContactAddressKey[];
4040
4069
  created_at: string;
4041
4070
  created_by: UserRef;
4071
+ updated_at?: string;
4072
+ updated_by?: UserRef;
4042
4073
  }
4043
4074
  interface CreateContactRecordLinkRequest {
4044
4075
  contact_id: string;
@@ -4049,6 +4080,7 @@ interface ListContactRecordLinksQuery extends PaginationQuery {
4049
4080
  contact_id?: string;
4050
4081
  entity_slug?: string;
4051
4082
  record_id?: string;
4083
+ source?: ContactRecordLinkSource;
4052
4084
  }
4053
4085
  interface MergeContactsRequest {
4054
4086
  source_contact_id: string;
@@ -4079,7 +4111,7 @@ interface ResponseMeta {
4079
4111
  items_total: number;
4080
4112
  pages_total: number;
4081
4113
  }
4082
- interface ListResponse<T> {
4114
+ interface ListResponse$1<T> {
4083
4115
  meta: ResponseMeta;
4084
4116
  data: T[];
4085
4117
  }
@@ -4275,9 +4307,12 @@ type SendingPeriod = 'rolling_24h' | 'rolling_7d' | 'rolling_30d';
4275
4307
  * ONE kind of act performed through a channel connection — shared by a
4276
4308
  * limit's `action` (what it counts), a channel action's `action_type` (what
4277
4309
  * was performed) and the eligibility check. `message` is the plain send
4278
- * (valid on a limit, never on a channel action row).
4310
+ * (valid on a limit, never on a channel action row). `profile_lookup` is the
4311
+ * silent twin of `profile_visit`: one provider read the platform performs to
4312
+ * learn a person's full identity (LinkedIn profile id + public identifier),
4313
+ * ledgered and limited like any other act.
4279
4314
  */
4280
- type ChannelActionType = 'message' | 'invitation' | 'inmail' | 'profile_visit';
4315
+ type ChannelActionType = 'message' | 'invitation' | 'inmail' | 'profile_visit' | 'profile_lookup';
4281
4316
  type Weekday = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
4282
4317
  /** One open range on one weekday, "HH:MM" wall-clock, from < until, same day. */
4283
4318
  interface WindowDay {
@@ -4946,7 +4981,7 @@ interface MeetingService {
4946
4981
  }
4947
4982
  /** Configured integration instances (Slack workspace, Gmail grant, …). */
4948
4983
  interface ConnectionService {
4949
- list(query?: ListConnectionsQuery): Promise<ListResponse<Connection>>;
4984
+ list(query?: ListConnectionsQuery): Promise<ListResponse$1<Connection>>;
4950
4985
  get(id: string): Promise<Connection>;
4951
4986
  create(request: CreateConnectionRequest): Promise<Connection>;
4952
4987
  update(id: string, request: UpdateConnectionRequest): Promise<Connection>;
@@ -4975,9 +5010,9 @@ interface ConnectionService {
4975
5010
  */
4976
5011
  sync(id: string, request: SyncConnectionRequest): Promise<Connection>;
4977
5012
  /** Search the contact addresses this connection can reach (org-deduped) for the compose picker. */
4978
- listContactAddresses(connectionId: string, query?: ListContactAddressesQuery): Promise<ListResponse<ContactAddress>>;
5013
+ listContactAddresses(connectionId: string, query?: ListContactAddressesQuery): Promise<ListResponse$1<ContactAddress>>;
4979
5014
  /** Search a connection's addressable VENUES (Slack channels) for the compose picker. */
4980
- listRooms(connectionId: string, query?: ListRoomsQuery): Promise<ListResponse<Room>>;
5015
+ listRooms(connectionId: string, query?: ListRoomsQuery): Promise<ListResponse$1<Room>>;
4981
5016
  /**
4982
5017
  * Deliverability of a sending-platform connection (SendGrid): rates from
4983
5018
  * the channel_event ledger + the provider's snapshot (engagement quality,
@@ -5008,7 +5043,7 @@ interface ConnectionService {
5008
5043
  }
5009
5044
  /** The person-level identity layer: contacts, addresses, merges, permissions, erasure. */
5010
5045
  interface ContactService {
5011
- list(query?: ListContactsQuery): Promise<ListResponse<Contact>>;
5046
+ list(query?: ListContactsQuery): Promise<ListResponse$1<Contact>>;
5012
5047
  get(id: string): Promise<Contact>;
5013
5048
  /**
5014
5049
  * Manually mint a contact (sync dedup — 409 contact_address_taken on any
@@ -5022,7 +5057,7 @@ interface ContactService {
5022
5057
  /** Link the contact to a business record (bare edge; 409 contact_record_link_exists on duplicates). */
5023
5058
  linkRecord(request: CreateContactRecordLinkRequest): Promise<ContactRecordLink>;
5024
5059
  /** Page contact→record edges by contact_id, or by entity_slug + record_id. */
5025
- listRecordLinks(query?: ListContactRecordLinksQuery): Promise<ListResponse<ContactRecordLink>>;
5060
+ listRecordLinks(query?: ListContactRecordLinksQuery): Promise<ListResponse$1<ContactRecordLink>>;
5026
5061
  getRecordLink(linkId: string): Promise<ContactRecordLink>;
5027
5062
  unlinkRecord(linkId: string): Promise<void>;
5028
5063
  /** Fold source_contact_id into contactId (contactId wins). */
@@ -5032,13 +5067,13 @@ interface ContactService {
5032
5067
  unblock(contactId: string, request?: BlockContactRequest): Promise<Contact>;
5033
5068
  requestErasure(contactId: string): Promise<ContactErasureRequest>;
5034
5069
  listErasureRequests(contactId: string): Promise<ContactErasureRequest[]>;
5035
- listMergeProposals(query?: ListContactMergeProposalsQuery): Promise<ListResponse<ContactMergeProposal>>;
5070
+ listMergeProposals(query?: ListContactMergeProposalsQuery): Promise<ListResponse$1<ContactMergeProposal>>;
5036
5071
  approveMergeProposal(proposalId: string): Promise<ContactMergeProposal>;
5037
5072
  rejectMergeProposal(proposalId: string): Promise<ContactMergeProposal>;
5038
5073
  }
5039
5074
  /** Conversation threads across every channel (inbox order: last_message_at). */
5040
5075
  interface ConversationService {
5041
- list(query?: ListConversationsQuery): Promise<ListResponse<Conversation>>;
5076
+ list(query?: ListConversationsQuery): Promise<ListResponse$1<Conversation>>;
5042
5077
  get(id: string): Promise<Conversation>;
5043
5078
  /** Patch the user-editable surface (subject, summary, status, metadata). */
5044
5079
  update(id: string, request: UpdateConversationRequest): Promise<Conversation>;
@@ -5057,7 +5092,7 @@ interface ConversationService {
5057
5092
  }
5058
5093
  /** Messages within a conversation (ordered by occurred_at) + outbound send + drafts + reactions. */
5059
5094
  interface MessageService {
5060
- listByConversation(conversationId: string, query?: ListMessagesQuery): Promise<ListResponse<Message>>;
5095
+ listByConversation(conversationId: string, query?: ListMessagesQuery): Promise<ListResponse$1<Message>>;
5061
5096
  /** One message with its read-time projections (reactions, attachments). */
5062
5097
  get(messageId: string): Promise<Message>;
5063
5098
  send(request: SendMessageRequest): Promise<Message>;
@@ -5094,7 +5129,7 @@ interface MessageService {
5094
5129
  }
5095
5130
  /** Rules binding inbound messages to agents. */
5096
5131
  interface AgentListenerService {
5097
- list(query?: ListAgentListenersQuery): Promise<ListResponse<AgentListener>>;
5132
+ list(query?: ListAgentListenersQuery): Promise<ListResponse$1<AgentListener>>;
5098
5133
  get(id: string): Promise<AgentListener>;
5099
5134
  create(request: CreateAgentListenerRequest): Promise<AgentListener>;
5100
5135
  update(id: string, request: UpdateAgentListenerRequest): Promise<AgentListener>;
@@ -5106,12 +5141,12 @@ interface AgentListenerService {
5106
5141
  * listEvents pages a rule's drop-audit trail (who got dropped, when, why).
5107
5142
  */
5108
5143
  interface ConversationFilterService {
5109
- list(query?: ListConversationFiltersQuery): Promise<ListResponse<ConversationFilter>>;
5144
+ list(query?: ListConversationFiltersQuery): Promise<ListResponse$1<ConversationFilter>>;
5110
5145
  get(id: string): Promise<ConversationFilter>;
5111
5146
  create(request: CreateConversationFilterRequest): Promise<ConversationFilter>;
5112
5147
  update(id: string, request: UpdateConversationFilterRequest): Promise<ConversationFilter>;
5113
5148
  delete(id: string): Promise<void>;
5114
- listEvents(id: string, query?: ListConversationFilterEventsQuery): Promise<ListResponse<ConversationFilterEvent>>;
5149
+ listEvents(id: string, query?: ListConversationFilterEventsQuery): Promise<ListResponse$1<ConversationFilterEvent>>;
5115
5150
  }
5116
5151
  /**
5117
5152
  * Per-org glossary: custom-vocabulary terms that boost transcription accuracy.
@@ -5120,7 +5155,7 @@ interface ConversationFilterService {
5120
5155
  * decides the top 100 sent when an org stores more than the provider's cap.
5121
5156
  */
5122
5157
  interface GlossaryTermService {
5123
- list(query?: ListGlossaryTermsQuery): Promise<ListResponse<GlossaryTerm>>;
5158
+ list(query?: ListGlossaryTermsQuery): Promise<ListResponse$1<GlossaryTerm>>;
5124
5159
  get(id: string): Promise<GlossaryTerm>;
5125
5160
  create(request: CreateGlossaryTermRequest): Promise<GlossaryTerm>;
5126
5161
  update(id: string, request: UpdateGlossaryTermRequest): Promise<GlossaryTerm>;
@@ -5135,7 +5170,7 @@ interface GlossaryTermService {
5135
5170
  * `key` (not id); `upsert` is the idempotent module-deploy door.
5136
5171
  */
5137
5172
  interface ConversationTypeService {
5138
- list(query?: ListConversationTypesQuery): Promise<ListResponse<ConversationType>>;
5173
+ list(query?: ListConversationTypesQuery): Promise<ListResponse$1<ConversationType>>;
5139
5174
  get(key: string): Promise<ConversationType>;
5140
5175
  create(request: CreateConversationTypeRequest): Promise<ConversationType>;
5141
5176
  update(key: string, request: UpdateConversationTypeRequest): Promise<ConversationType>;
@@ -5152,7 +5187,7 @@ interface ConversationTypeService {
5152
5187
  * membership and purges its tone profile rows.
5153
5188
  */
5154
5189
  interface ContactGroupService {
5155
- list(query?: ListContactGroupsQuery): Promise<ListResponse<ContactGroup>>;
5190
+ list(query?: ListContactGroupsQuery): Promise<ListResponse$1<ContactGroup>>;
5156
5191
  get(key: string): Promise<ContactGroup>;
5157
5192
  create(request: CreateContactGroupRequest): Promise<ContactGroup>;
5158
5193
  update(key: string, request: UpdateContactGroupRequest): Promise<ContactGroup>;
@@ -5169,13 +5204,13 @@ interface ContactGroupService {
5169
5204
  * `resolve` (each row is self-contained; never concatenate tiers).
5170
5205
  */
5171
5206
  interface ToneProfileService {
5172
- listSetups(query?: ListToneProfileSetupsQuery): Promise<ListResponse<ToneProfileSetup>>;
5207
+ listSetups(query?: ListToneProfileSetupsQuery): Promise<ListResponse$1<ToneProfileSetup>>;
5173
5208
  createSetup(request: CreateToneProfileSetupRequest): Promise<ToneProfileSetup>;
5174
5209
  /** Removes the setup AND the user's generated profiles. */
5175
5210
  deleteSetup(id: string): Promise<void>;
5176
5211
  /** Kicks a whole-user synthesis run off-request (bypasses cadence checks). */
5177
5212
  synthesize(setupId: string): Promise<void>;
5178
- listProfiles(query?: ListToneProfilesQuery): Promise<ListResponse<ToneProfile>>;
5213
+ listProfiles(query?: ListToneProfilesQuery): Promise<ListResponse$1<ToneProfile>>;
5179
5214
  getProfile(id: string): Promise<ToneProfile>;
5180
5215
  /** The single most-specific profile for a drafting context; 404 when none. */
5181
5216
  resolve(query: ResolveToneProfileQuery): Promise<ToneProfile>;
@@ -5210,7 +5245,7 @@ interface TranscriptionService {
5210
5245
  * chooses the mode, and exactly one of the two is allowed.
5211
5246
  */
5212
5247
  createFromText(request: CreateTranscriptionFromTextRequest): Promise<Transcription>;
5213
- list(query?: ListTranscriptionsQuery): Promise<ListResponse<Transcription>>;
5248
+ list(query?: ListTranscriptionsQuery): Promise<ListResponse$1<Transcription>>;
5214
5249
  get(id: string): Promise<Transcription>;
5215
5250
  /**
5216
5251
  * Edits a completed transcription (turn text, speaker labels, language).
@@ -5234,7 +5269,7 @@ interface TranscriptionService {
5234
5269
  * review_status to completed.
5235
5270
  */
5236
5271
  interface MistranscribedTermService {
5237
- list(query?: ListMistranscribedTermsQuery): Promise<ListResponse<MistranscribedTerm>>;
5272
+ list(query?: ListMistranscribedTermsQuery): Promise<ListResponse$1<MistranscribedTerm>>;
5238
5273
  get(id: string): Promise<MistranscribedTerm>;
5239
5274
  accept(id: string, request?: AcceptMistranscribedTermRequest): Promise<MistranscribedTerm>;
5240
5275
  reject(id: string): Promise<MistranscribedTerm>;
@@ -5274,7 +5309,7 @@ interface CallService {
5274
5309
  * refuses another (409 `conversation_brief_already_attached`).
5275
5310
  */
5276
5311
  interface ConversationBriefService {
5277
- list(query?: ListConversationBriefsQuery): Promise<ListResponse<ConversationBrief>>;
5312
+ list(query?: ListConversationBriefsQuery): Promise<ListResponse$1<ConversationBrief>>;
5278
5313
  get(id: string): Promise<ConversationBrief>;
5279
5314
  create(request: CreateConversationBriefRequest): Promise<ConversationBrief>;
5280
5315
  update(id: string, request: UpdateConversationBriefRequest): Promise<ConversationBrief>;
@@ -5291,7 +5326,7 @@ interface ConversationBriefService {
5291
5326
  * carry `earliest_allowed_at` (429) or the blocked contact (403).
5292
5327
  */
5293
5328
  interface SendingRuleService {
5294
- list(query?: ListSendingRulesQuery): Promise<ListResponse<SendingRule>>;
5329
+ list(query?: ListSendingRulesQuery): Promise<ListResponse$1<SendingRule>>;
5295
5330
  get(id: string): Promise<SendingRule>;
5296
5331
  create(request: CreateSendingRuleRequest): Promise<SendingRule>;
5297
5332
  update(id: string, request: UpdateSendingRuleRequest): Promise<SendingRule>;
@@ -5320,7 +5355,7 @@ interface SendingRuleService {
5320
5355
  * phantom act.
5321
5356
  */
5322
5357
  interface ChannelActionService {
5323
- list(query?: ListChannelActionsQuery): Promise<ListResponse<ChannelAction>>;
5358
+ list(query?: ListChannelActionsQuery): Promise<ListResponse$1<ChannelAction>>;
5324
5359
  get(id: string): Promise<ChannelAction>;
5325
5360
  /** Performs one act; resolves to the row in its post-perform status. */
5326
5361
  perform(request: PerformChannelActionRequest): Promise<ChannelAction>;
@@ -5336,9 +5371,9 @@ interface ChannelActionService {
5336
5371
  * ingest. `listByMessage` is the per-message history, oldest first.
5337
5372
  */
5338
5373
  interface ChannelEventService {
5339
- list(query?: ListChannelEventsQuery): Promise<ListResponse<ChannelEvent>>;
5374
+ list(query?: ListChannelEventsQuery): Promise<ListResponse$1<ChannelEvent>>;
5340
5375
  get(id: string): Promise<ChannelEvent>;
5341
- listByMessage(messageId: string): Promise<ListResponse<ChannelEvent>>;
5376
+ listByMessage(messageId: string): Promise<ListResponse$1<ChannelEvent>>;
5342
5377
  }
5343
5378
 
5344
5379
  /**
@@ -5552,6 +5587,60 @@ declare const BatchUpsertRecordsResponseSchema: z.ZodObject<{
5552
5587
  record?: Record<string, unknown> | undefined;
5553
5588
  }[];
5554
5589
  }>;
5590
+ /** How a duplicate pair was detected. `contact_binding` = two records bound to
5591
+ * the same conversation contact through their contact-address attributes. */
5592
+ type RecordDuplicateSource = 'contact_binding' | (string & {});
5593
+ type RecordDuplicateStatus = 'open' | 'dismissed' | 'resolved';
5594
+ /**
5595
+ * "These two records of one entity may be the same thing." Asymmetric:
5596
+ * `primary_record_id` is the record to keep, `secondary_record_id` the
5597
+ * newcomer. A group of colliding records has ONE primary and one row per other
5598
+ * member (four records = three rows). `evidence` is shaped by `source` — for
5599
+ * `contact_binding`: `{ contact_id, address_keys: [{kind, value}] }`.
5600
+ */
5601
+ interface RecordDuplicate {
5602
+ id: string;
5603
+ org_id: string;
5604
+ entity_slug: string;
5605
+ primary_record_id: string;
5606
+ secondary_record_id: string;
5607
+ source: RecordDuplicateSource;
5608
+ evidence: Record<string, unknown>;
5609
+ status: RecordDuplicateStatus;
5610
+ resolved_by?: {
5611
+ type: string;
5612
+ id: string;
5613
+ };
5614
+ resolved_at?: string;
5615
+ created_at: string;
5616
+ created_by: {
5617
+ type: string;
5618
+ id: string;
5619
+ };
5620
+ updated_at: string;
5621
+ updated_by: {
5622
+ type: string;
5623
+ id: string;
5624
+ };
5625
+ }
5626
+ interface ListRecordDuplicatesQuery {
5627
+ /** Only pairs this record takes part in (either side). */
5628
+ record_id?: string;
5629
+ /** Defaults to `open` on the server. */
5630
+ status?: RecordDuplicateStatus;
5631
+ page?: number;
5632
+ page_size?: number;
5633
+ }
5634
+ /** ONE page of an entity's records replayed as contact observations. */
5635
+ interface PublishContactObservationsResponse {
5636
+ entity_slug: string;
5637
+ page: number;
5638
+ page_size: number;
5639
+ pages_total: number;
5640
+ items_total: number;
5641
+ published: number;
5642
+ skipped: number;
5643
+ }
5555
5644
 
5556
5645
  /**
5557
5646
  * Service for managing records (per-entity data rows) via the data-service.
@@ -5610,6 +5699,25 @@ interface RecordService {
5610
5699
  * (bare refs) on this path.
5611
5700
  */
5612
5701
  getPublic(orgId: string, entitySlug: string, id: string): Promise<RecordData>;
5702
+ /**
5703
+ * Replays ONE page of the entity's records as record_contact_observation
5704
+ * events (the backfill after an attribute became contact-address). Requires
5705
+ * unscoped write on the entity; loop until `page + 1 >= pages_total`.
5706
+ */
5707
+ publishContactObservations(entitySlug: string, options?: {
5708
+ page?: number;
5709
+ page_size?: number;
5710
+ }): Promise<PublishContactObservationsResponse>;
5711
+ }
5712
+ /**
5713
+ * Record duplicates — "these two records may be the same thing" pairs of one
5714
+ * entity (see `RecordDuplicate`). Reading = entity read, dismissing = entity write.
5715
+ */
5716
+ interface RecordDuplicateService {
5717
+ list(entitySlug: string, query?: ListRecordDuplicatesQuery): Promise<ListResult<RecordDuplicate>>;
5718
+ get(entitySlug: string, id: string): Promise<RecordDuplicate>;
5719
+ /** Closes a pair as "not a duplicate" (409 `record_duplicate_not_open` when already closed). */
5720
+ dismiss(entitySlug: string, id: string): Promise<RecordDuplicate>;
5613
5721
  }
5614
5722
 
5615
5723
  /**
@@ -5626,6 +5734,8 @@ interface RecordService {
5626
5734
  declare class DataClient {
5627
5735
  readonly records: RecordService;
5628
5736
  readonly queries: QueryService;
5737
+ /** Duplicate pairs of an entity's records (raised by contact binding). */
5738
+ readonly recordDuplicates: RecordDuplicateService;
5629
5739
  constructor(client: ProteosClient);
5630
5740
  }
5631
5741
 
@@ -7508,6 +7618,827 @@ declare class KnowledgeClient {
7508
7618
  constructor(client: ProteosClient);
7509
7619
  }
7510
7620
 
7621
+ /** The calendar backend behind a connection. */
7622
+ type CalendarProvider = 'google' | 'microsoft';
7623
+ /** The health of our binding to a connector-service grant. */
7624
+ type CalendarConnectionStatus = 'active' | 'error' | 'revoked';
7625
+ /** What COLLEAGUES see of a calendar's events: nothing, busy blocks, everything. */
7626
+ type CalendarVisibility = 'private' | 'busy_only' | 'full';
7627
+ /** The mirror state of one calendar. */
7628
+ type CalendarSyncStatus = 'idle' | 'syncing' | 'error';
7629
+ /** An attendee's RSVP. */
7630
+ type ParticipationStatus = 'needs_action' | 'accepted' | 'declined' | 'tentative';
7631
+ /** Whether an event blocks its owner's time. */
7632
+ type EventTransparency = 'busy' | 'free';
7633
+ /** The provider lifecycle state of an event. */
7634
+ type EventStatus = 'confirmed' | 'tentative' | 'cancelled';
7635
+ /** Provider-side visibility of one event (distinct from CalendarVisibility). */
7636
+ type EventVisibility = 'default' | 'private' | 'public';
7637
+ /** Who created the row first: the provider (mirrored) or the platform. */
7638
+ type EventSource = 'provider' | 'platform';
7639
+ /**
7640
+ * Delivery state of a platform write to the provider. `pending_mirror` marks a
7641
+ * host's copy of a meeting written to the ORGANIZER's calendar, merged onto by
7642
+ * that host's own sync (by ical_uid).
7643
+ */
7644
+ type EventWriteStatus = 'synced' | 'pending' | 'pending_mirror' | 'failed';
7645
+ /** Integrated conferencing minted by the provider. */
7646
+ type ConferencingProvider = 'google_meet' | 'teams';
7647
+ /** How many of a link's hosts end up in the meeting. */
7648
+ type Assignment = 'single' | 'round_robin' | 'collective';
7649
+ /** Whom the provider emails about a platform write. */
7650
+ type NotifyMode = 'all' | 'external_only' | 'none';
7651
+ /** What an edit of a recurring instance targets. */
7652
+ type RecurrenceScope = 'instance' | 'series';
7653
+ /** How a calendar event type meets. */
7654
+ type LocationKind = 'video' | 'phone' | 'in_person' | 'custom';
7655
+ /** What an availability constraint does to the window it covers. */
7656
+ type AvailabilityKind = 'available' | 'unavailable';
7657
+ /** Why a host is not offered at a time (verbose slot reads). */
7658
+ type SlotUnavailabilityReason = 'no_calendar' | 'outside_hours' | 'blocked' | 'other_event_type' | 'calendar_busy' | 'exclusive_event' | 'minimum_notice' | 'scheduling_window' | 'daily_limit';
7659
+ /**
7660
+ * Our binding to one connector-service grant (a `google-calendar` /
7661
+ * `microsoft-calendar` connection of scope user). A user may hold several;
7662
+ * the same provider account cannot be bound twice. Calendars hang off it.
7663
+ */
7664
+ interface CalendarConnection {
7665
+ id: string;
7666
+ org_id: string;
7667
+ /** The platform user who owns the grant. */
7668
+ owner: UserRef$2;
7669
+ connection_id: string;
7670
+ provider: CalendarProvider;
7671
+ /** The provider account (e-mail address / UPN), copied from the grant. */
7672
+ external_account_id: string;
7673
+ status: CalendarConnectionStatus;
7674
+ status_detail?: string;
7675
+ last_synced_at?: string;
7676
+ created_at: string;
7677
+ created_by: UserRef$2;
7678
+ updated_at: string;
7679
+ updated_by: UserRef$2;
7680
+ }
7681
+ /** The mirror state of one calendar: change cursor, backfilled window, last outcome. */
7682
+ interface CalendarSync {
7683
+ cursor?: string;
7684
+ backfill_from?: string;
7685
+ backfill_to?: string;
7686
+ last_synced_at?: string;
7687
+ status: CalendarSyncStatus;
7688
+ error?: string;
7689
+ }
7690
+ /**
7691
+ * The open push subscription for one calendar. Google fills channel_id +
7692
+ * resource_id, Microsoft fills subscription_id. Only the HASH of the secret
7693
+ * the provider echoes is stored.
7694
+ */
7695
+ interface CalendarWatch {
7696
+ channel_id?: string;
7697
+ resource_id?: string;
7698
+ subscription_id?: string;
7699
+ client_state_hash?: string;
7700
+ expires_at?: string;
7701
+ }
7702
+ /**
7703
+ * One provider calendar under a connection, plus the platform's roles for it:
7704
+ * is_synced (mirrored + watched), is_availability_source (its busy time counts
7705
+ * against the owner's slots), is_target (the ONE calendar per user the
7706
+ * platform writes exclusive events to), visibility (what colleagues see).
7707
+ */
7708
+ interface Calendar {
7709
+ id: string;
7710
+ org_id: string;
7711
+ calendar_connection_id: string;
7712
+ /** The calendar's owner (the connection's owner, denormalized). */
7713
+ owner: UserRef$2;
7714
+ provider_calendar_id: string;
7715
+ name: string;
7716
+ color?: string;
7717
+ timezone?: string;
7718
+ is_primary: boolean;
7719
+ is_readonly: boolean;
7720
+ has_integrated_conferencing: boolean;
7721
+ is_synced: boolean;
7722
+ is_availability_source: boolean;
7723
+ is_target: boolean;
7724
+ visibility: CalendarVisibility;
7725
+ sync: CalendarSync;
7726
+ watch: CalendarWatch;
7727
+ created_at: string;
7728
+ created_by: UserRef$2;
7729
+ updated_at: string;
7730
+ updated_by: UserRef$2;
7731
+ }
7732
+ /**
7733
+ * A user's scheduling settings: the zone their hours are expressed in, the
7734
+ * weekly hours themselves ({day, from, until} windows, the sending-rule
7735
+ * shape; empty = bookable any time), what a scheduling page shows about
7736
+ * them, and whether they can be booked at all. One per (org, user).
7737
+ */
7738
+ interface SchedulingProfile {
7739
+ id: string;
7740
+ org_id: string;
7741
+ user_id: string;
7742
+ timezone: string;
7743
+ weekly_hours: WindowDay[];
7744
+ display_name?: string;
7745
+ headline?: string;
7746
+ is_bookable: boolean;
7747
+ created_at: string;
7748
+ created_by: UserRef$2;
7749
+ updated_at: string;
7750
+ updated_by: UserRef$2;
7751
+ }
7752
+ /**
7753
+ * One person or resource on an event: the platform's person snapshot
7754
+ * (ContactRef — the same shape a conversation participant carries) plus the
7755
+ * calendar facts. Hosts of a platform-scheduled event are attendees too
7756
+ * (is_host); the calendar owner's own row is is_self.
7757
+ */
7758
+ interface CalendarAttendee extends ContactRef {
7759
+ response_status: ParticipationStatus;
7760
+ is_optional: boolean;
7761
+ is_organizer: boolean;
7762
+ is_self: boolean;
7763
+ /** A platform user whose time this event claims; always false on mirrored events. */
7764
+ is_host: boolean;
7765
+ /** Rooms and equipment — never resolved to a contact. */
7766
+ is_resource: boolean;
7767
+ }
7768
+ /**
7769
+ * The one seam between the platform's calendar and a module's business
7770
+ * object: the record this event belongs to (an appointment, an interview…).
7771
+ */
7772
+ interface RecordRef {
7773
+ entity_slug: string;
7774
+ record_id: string;
7775
+ }
7776
+ /**
7777
+ * ONE entry in ONE provider calendar, mirrored two-way. A platform-created row
7778
+ * with is_exclusive claims its owner's time (DB exclusion constraint);
7779
+ * mirrored provider rows never do. All copies of one meeting share ical_uid.
7780
+ */
7781
+ interface CalendarEvent {
7782
+ id: string;
7783
+ org_id: string;
7784
+ calendar_id: string;
7785
+ /** The calendar's owner (denormalized for per-user window reads). */
7786
+ owner: UserRef$2;
7787
+ /** The id in THIS calendar; absent while a platform write is pending. */
7788
+ provider_event_id?: string;
7789
+ /** RFC 5545 UID shared by every copy of the meeting. */
7790
+ ical_uid?: string;
7791
+ /** The recurring master's id on expanded instances. */
7792
+ series_id?: string;
7793
+ is_recurring_instance: boolean;
7794
+ /** RRULE / EXDATE lines — series master only. */
7795
+ recurrence?: string[];
7796
+ title: string;
7797
+ description?: string;
7798
+ start_at: string;
7799
+ end_at: string;
7800
+ is_all_day: boolean;
7801
+ /** The provider's zone for the event — display and all-day boundaries only. */
7802
+ timezone?: string;
7803
+ location?: string;
7804
+ join_url?: string;
7805
+ conferencing_provider?: ConferencingProvider;
7806
+ organizer: ContactRef;
7807
+ attendees: CalendarAttendee[];
7808
+ owner_response_status: ParticipationStatus;
7809
+ transparency: EventTransparency;
7810
+ status: EventStatus;
7811
+ visibility: EventVisibility;
7812
+ etag?: string;
7813
+ provider_updated_at?: string;
7814
+ source: EventSource;
7815
+ is_exclusive: boolean;
7816
+ /** Set when the platform scheduled the event through a calendar_event_type / scheduling_link. */
7817
+ type_key?: string;
7818
+ link_key?: string;
7819
+ record?: RecordRef;
7820
+ /** A read where the viewer only sees busy blocks of a colleague's calendar. */
7821
+ is_projected?: boolean;
7822
+ write_status: EventWriteStatus;
7823
+ write_error?: string;
7824
+ /** The tombstone: the provider (or a platform delete) removed the event. */
7825
+ deleted_at?: string;
7826
+ created_at: string;
7827
+ created_by: UserRef$2;
7828
+ updated_at: string;
7829
+ updated_by: UserRef$2;
7830
+ }
7831
+ /** Where events of a type meet; is_integrated_conferencing asks the provider for a Meet / Teams link. */
7832
+ interface EventLocation {
7833
+ kind: LocationKind;
7834
+ is_integrated_conferencing: boolean;
7835
+ join_url?: string;
7836
+ phone?: string;
7837
+ address?: string;
7838
+ instructions?: string;
7839
+ }
7840
+ /**
7841
+ * The *what* of a scheduled event — the reusable preset of slot rules a link,
7842
+ * an internal booking or a module books against. Config, keyed by (org, key).
7843
+ */
7844
+ interface CalendarEventType {
7845
+ org_id: string;
7846
+ key: string;
7847
+ name: string;
7848
+ description?: string;
7849
+ color?: string;
7850
+ duration_minutes: number;
7851
+ /** The candidate grid: 5 | 10 | 15 | 20 | 30 | 60. */
7852
+ slot_interval_minutes: number;
7853
+ buffer_before_minutes: number;
7854
+ buffer_after_minutes: number;
7855
+ minimum_notice_minutes: number;
7856
+ /** How far ahead a slot may be taken; 0 = no cap. */
7857
+ scheduling_window_days: number;
7858
+ /** Exclusive events of this type per host per day; 0 = no cap. */
7859
+ max_per_day: number;
7860
+ location: EventLocation;
7861
+ /** Soft reference to conversation-service's conversation_type. */
7862
+ conversation_type_key?: string;
7863
+ is_cancel_allowed: boolean;
7864
+ is_reschedule_allowed: boolean;
7865
+ cancel_notice_minutes: number;
7866
+ is_enabled: boolean;
7867
+ created_at: string;
7868
+ created_by: UserRef$2;
7869
+ updated_at: string;
7870
+ updated_by: UserRef$2;
7871
+ }
7872
+ /**
7873
+ * One rule about a user's time on top of their weekly hours: a recurring
7874
+ * window (recurrence_rule = "DTSTART;TZID=…\nRRULE:…", duration_minutes
7875
+ * long, or is_all_day) that opens time (available, also outside the weekly
7876
+ * hours) or blocks it (unavailable). calendar_event_type_keys scopes the rule
7877
+ * to some types: an available window "for intro calls" opens it for them and
7878
+ * keeps every other type out; an unavailable window "for demos" blocks demos
7879
+ * only. Empty = every type.
7880
+ */
7881
+ interface AvailabilityConstraint {
7882
+ id: string;
7883
+ org_id: string;
7884
+ user_id: string;
7885
+ kind: AvailabilityKind;
7886
+ recurrence_rule: string;
7887
+ duration_minutes: number;
7888
+ is_all_day: boolean;
7889
+ calendar_event_type_keys: string[];
7890
+ label?: string;
7891
+ created_at: string;
7892
+ created_by: UserRef$2;
7893
+ updated_at: string;
7894
+ updated_by: UserRef$2;
7895
+ }
7896
+ /** One bookable start; host_user_ids = the hosts free for it. */
7897
+ interface Slot {
7898
+ start_at: string;
7899
+ end_at: string;
7900
+ host_user_ids: string[];
7901
+ }
7902
+ /** Why a host is not offered at a time; calendar_event_id when a mirrored event is the cause. */
7903
+ interface SlotUnavailability {
7904
+ start_at: string;
7905
+ end_at: string;
7906
+ host_user_id: string;
7907
+ reason: SlotUnavailabilityReason;
7908
+ calendar_event_id?: string;
7909
+ }
7910
+ /** Creates or replaces a calendar event type (PUT /calendar-event-types/:key). */
7911
+ interface PutCalendarEventTypeRequest {
7912
+ name: string;
7913
+ description?: string;
7914
+ color?: string;
7915
+ duration_minutes: number;
7916
+ slot_interval_minutes?: number;
7917
+ buffer_before_minutes?: number;
7918
+ buffer_after_minutes?: number;
7919
+ minimum_notice_minutes?: number;
7920
+ scheduling_window_days?: number;
7921
+ max_per_day?: number;
7922
+ location?: EventLocation;
7923
+ conversation_type_key?: string;
7924
+ /** Policy flags default to TRUE when absent; send false to switch one off. */
7925
+ is_cancel_allowed?: boolean;
7926
+ is_reschedule_allowed?: boolean;
7927
+ cancel_notice_minutes?: number;
7928
+ is_enabled?: boolean;
7929
+ }
7930
+ /** Partial update of a calendar event type; location replaces wholesale. */
7931
+ interface UpdateCalendarEventTypeRequest {
7932
+ name?: string;
7933
+ description?: string;
7934
+ color?: string;
7935
+ duration_minutes?: number;
7936
+ slot_interval_minutes?: number;
7937
+ buffer_before_minutes?: number;
7938
+ buffer_after_minutes?: number;
7939
+ minimum_notice_minutes?: number;
7940
+ scheduling_window_days?: number;
7941
+ max_per_day?: number;
7942
+ location?: EventLocation;
7943
+ conversation_type_key?: string;
7944
+ /** Policy flags default to TRUE when absent; send false to switch one off. */
7945
+ is_cancel_allowed?: boolean;
7946
+ is_reschedule_allowed?: boolean;
7947
+ cancel_notice_minutes?: number;
7948
+ is_enabled?: boolean;
7949
+ }
7950
+ interface ListCalendarEventTypesQuery {
7951
+ is_enabled?: boolean;
7952
+ search?: string;
7953
+ page?: number;
7954
+ page_size?: number;
7955
+ sort_by?: string;
7956
+ sort_direction?: 'asc' | 'desc';
7957
+ }
7958
+ /**
7959
+ * Adds one rule about a user's time. recurrence_rule is
7960
+ * "DTSTART;TZID=<zone>:<local time>\nRRULE:<rule>" with a quarter-hour DTSTART.
7961
+ */
7962
+ interface CreateAvailabilityConstraintRequest {
7963
+ kind: AvailabilityKind;
7964
+ recurrence_rule: string;
7965
+ duration_minutes?: number;
7966
+ is_all_day?: boolean;
7967
+ calendar_event_type_keys?: string[];
7968
+ label?: string;
7969
+ }
7970
+ /** Partial update; calendar_event_type_keys present replaces the list. */
7971
+ interface UpdateAvailabilityConstraintRequest {
7972
+ kind?: AvailabilityKind;
7973
+ recurrence_rule?: string;
7974
+ duration_minutes?: number;
7975
+ is_all_day?: boolean;
7976
+ calendar_event_type_keys?: string[];
7977
+ label?: string;
7978
+ }
7979
+ interface ListAvailabilityConstraintsQuery {
7980
+ kind?: AvailabilityKind;
7981
+ page?: number;
7982
+ page_size?: number;
7983
+ sort_by?: string;
7984
+ sort_direction?: 'asc' | 'desc';
7985
+ }
7986
+ /** Explicit slot rules when no calendar_event_type governs the request. */
7987
+ interface SlotParameters {
7988
+ duration_minutes: number;
7989
+ slot_interval_minutes?: number;
7990
+ buffer_before_minutes?: number;
7991
+ buffer_after_minutes?: number;
7992
+ minimum_notice_minutes?: number;
7993
+ scheduling_window_days?: number;
7994
+ max_per_day?: number;
7995
+ }
7996
+ /**
7997
+ * Asks for the bookable starts of some hosts in [from, to) (≤ 31 days).
7998
+ * Exactly one of type_key | link_key | parameters governs the rules;
7999
+ * assignment picks union (single / round_robin) or intersection (collective).
8000
+ * timezone is the requester's zone: slots are grouped by its local day.
8001
+ */
8002
+ interface GetSlotsRequest {
8003
+ type_key?: string;
8004
+ link_key?: string;
8005
+ parameters?: SlotParameters;
8006
+ host_user_ids?: string[];
8007
+ assignment?: Assignment;
8008
+ from: string;
8009
+ to: string;
8010
+ timezone: string;
8011
+ is_verbose?: boolean;
8012
+ }
8013
+ /** Slots grouped by the requester's local day ("YYYY-MM-DD"); unavailability only when verbose. */
8014
+ interface GetSlotsResponse {
8015
+ slots: Record<string, Slot[]>;
8016
+ unavailability?: SlotUnavailability[];
8017
+ }
8018
+ /**
8019
+ * Binds a connector-service grant (a `google-calendar` / `microsoft-calendar`
8020
+ * connection of scope user owned by the caller) to the calendar mirror.
8021
+ */
8022
+ interface CreateCalendarConnectionRequest {
8023
+ connection_id: string;
8024
+ }
8025
+ /** Re-activates a repaired connection. Only `active` can be requested. */
8026
+ interface UpdateCalendarConnectionRequest {
8027
+ status?: 'active';
8028
+ }
8029
+ interface ListCalendarConnectionsQuery {
8030
+ provider?: CalendarProvider;
8031
+ status?: CalendarConnectionStatus;
8032
+ page?: number;
8033
+ page_size?: number;
8034
+ sort_by?: string;
8035
+ sort_direction?: 'asc' | 'desc';
8036
+ }
8037
+ /**
8038
+ * Changes the platform roles of a calendar. Every field is tri-state;
8039
+ * is_synced flips the mirror on/off, is_target=true demotes the user's
8040
+ * current target calendar in the same transaction.
8041
+ */
8042
+ interface UpdateCalendarRequest {
8043
+ is_synced?: boolean;
8044
+ is_availability_source?: boolean;
8045
+ is_target?: boolean;
8046
+ visibility?: CalendarVisibility;
8047
+ color?: string;
8048
+ }
8049
+ interface ListCalendarsQuery {
8050
+ calendar_connection_id?: string;
8051
+ is_synced?: boolean;
8052
+ is_availability_source?: boolean;
8053
+ is_target?: boolean;
8054
+ page?: number;
8055
+ page_size?: number;
8056
+ sort_by?: string;
8057
+ sort_direction?: 'asc' | 'desc';
8058
+ }
8059
+ /** Replaces a user's scheduling profile (PUT semantics: every field is the new value). */
8060
+ interface PutSchedulingProfileRequest {
8061
+ timezone: string;
8062
+ weekly_hours: WindowDay[];
8063
+ display_name?: string;
8064
+ headline?: string;
8065
+ is_bookable: boolean;
8066
+ }
8067
+ /**
8068
+ * Reads a window of events. user_ids / calendar_ids pick whose calendars
8069
+ * (default: the caller's); colleagues' events come back projected by their
8070
+ * calendar's visibility. from/to are required (≤ 93 days).
8071
+ */
8072
+ interface ListCalendarEventsQuery {
8073
+ user_ids?: string[];
8074
+ calendar_ids?: string[];
8075
+ from: string;
8076
+ to: string;
8077
+ timezone?: string;
8078
+ type_key?: string;
8079
+ record_entity_slug?: string;
8080
+ record_id?: string;
8081
+ contact_id?: string;
8082
+ is_deleted_included?: boolean;
8083
+ }
8084
+ /** One person to invite on a platform write. */
8085
+ interface CalendarAttendeeRequest {
8086
+ email: string;
8087
+ name?: string;
8088
+ is_optional?: boolean;
8089
+ }
8090
+ /**
8091
+ * Schedules the event for platform users instead of one explicit calendar:
8092
+ * the service resolves each host's target calendar and writes one provider
8093
+ * event owned by the organizer.
8094
+ */
8095
+ interface HostsRequest {
8096
+ user_ids: string[];
8097
+ assignment: Assignment;
8098
+ organizer_user_id?: string;
8099
+ }
8100
+ /**
8101
+ * Writes an event through to the provider. Exactly one of calendar_id (the
8102
+ * caller's own calendar) or hosts is given. is_exclusive makes the row claim
8103
+ * the owner's time (409 slot_unavailable on overlap).
8104
+ */
8105
+ interface CreateCalendarEventRequest {
8106
+ calendar_id?: string;
8107
+ hosts?: HostsRequest;
8108
+ title: string;
8109
+ description?: string;
8110
+ location?: string;
8111
+ start_at: string;
8112
+ end_at: string;
8113
+ is_all_day?: boolean;
8114
+ timezone?: string;
8115
+ attendees?: CalendarAttendeeRequest[];
8116
+ is_conferencing_requested?: boolean;
8117
+ transparency?: EventTransparency;
8118
+ visibility?: EventVisibility;
8119
+ notify?: NotifyMode;
8120
+ is_exclusive?: boolean;
8121
+ type_key?: string;
8122
+ link_key?: string;
8123
+ record?: RecordRef;
8124
+ }
8125
+ /**
8126
+ * Partial update; an absent field is left as is. attendees present replaces
8127
+ * the whole list (an empty list clears it).
8128
+ */
8129
+ interface UpdateCalendarEventRequest {
8130
+ title?: string;
8131
+ description?: string;
8132
+ location?: string;
8133
+ start_at?: string;
8134
+ end_at?: string;
8135
+ is_all_day?: boolean;
8136
+ timezone?: string;
8137
+ attendees?: CalendarAttendeeRequest[];
8138
+ is_conferencing_requested?: boolean;
8139
+ transparency?: EventTransparency;
8140
+ visibility?: EventVisibility;
8141
+ notify?: NotifyMode;
8142
+ type_key?: string;
8143
+ record?: RecordRef;
8144
+ /** Removes the record back-link (an absent record cannot say so). */
8145
+ is_record_cleared?: boolean;
8146
+ }
8147
+ /** Records the caller's RSVP on an event they were invited to. */
8148
+ interface RespondCalendarEventRequest {
8149
+ status: Exclude<ParticipationStatus, 'needs_action'>;
8150
+ comment?: string;
8151
+ }
8152
+ /** Body of POST /me/calendar-connections/:id/sync. */
8153
+ /** Which host a rescheduled link booking lands on. */
8154
+ type RescheduleHost = 'same' | 'any';
8155
+ /** The entry point for taking a slot: hosts, assignment, governing type. Keyed by (org, key). */
8156
+ interface SchedulingLink {
8157
+ org_id: string;
8158
+ key: string;
8159
+ name: string;
8160
+ /** Types offered: one = pre-defined, several = the booker picks (type_key then required). */
8161
+ calendar_event_type_keys: string[];
8162
+ host_user_ids: string[];
8163
+ assignment: Assignment;
8164
+ is_public: boolean;
8165
+ is_enabled: boolean;
8166
+ /** The booker may pick one of the hosts on the page. */
8167
+ is_host_selectable: boolean;
8168
+ reschedule_host: RescheduleHost;
8169
+ /** Computed: the public page address (absent without WEB_PUBLIC_URL). */
8170
+ url?: string;
8171
+ created_at: string;
8172
+ created_by: UserRef$2;
8173
+ updated_at: string;
8174
+ updated_by: UserRef$2;
8175
+ }
8176
+ interface CreateSchedulingLinkRequest {
8177
+ key: string;
8178
+ name: string;
8179
+ calendar_event_type_keys: string[];
8180
+ host_user_ids: string[];
8181
+ assignment: Assignment;
8182
+ is_public?: boolean;
8183
+ is_enabled?: boolean;
8184
+ is_host_selectable?: boolean;
8185
+ reschedule_host?: RescheduleHost;
8186
+ }
8187
+ interface UpdateSchedulingLinkRequest {
8188
+ name?: string;
8189
+ calendar_event_type_keys?: string[];
8190
+ host_user_ids?: string[];
8191
+ assignment?: Assignment;
8192
+ is_public?: boolean;
8193
+ is_enabled?: boolean;
8194
+ is_host_selectable?: boolean;
8195
+ reschedule_host?: RescheduleHost;
8196
+ }
8197
+ interface ListSchedulingLinksQuery {
8198
+ /** Links offering this type. */
8199
+ type_key?: string;
8200
+ is_public?: boolean;
8201
+ is_enabled?: boolean;
8202
+ search?: string;
8203
+ page?: number;
8204
+ page_size?: number;
8205
+ sort_by?: string;
8206
+ sort_direction?: 'asc' | 'desc';
8207
+ }
8208
+ /** The person a link booking is for: by id (contact-bound page) or by email. */
8209
+ interface BookingContact {
8210
+ id?: string;
8211
+ name?: string;
8212
+ email?: string;
8213
+ phone?: string;
8214
+ }
8215
+ interface BookSchedulingLinkRequest {
8216
+ /** Picks the type on a multi-type link (optional when the link offers one). */
8217
+ type_key?: string;
8218
+ start_at: string;
8219
+ timezone: string;
8220
+ contact?: BookingContact;
8221
+ notes?: string;
8222
+ host_user_id?: string;
8223
+ }
8224
+ /** Authenticated booking answer: the event plus the one-time manage token. */
8225
+ interface BookSchedulingLinkResponse extends CalendarEvent {
8226
+ manage_token: string;
8227
+ manage_url?: string;
8228
+ }
8229
+ interface PublicEventLocation {
8230
+ kind: LocationKind;
8231
+ address?: string;
8232
+ instructions?: string;
8233
+ }
8234
+ interface PublicCalendarEventType {
8235
+ key: string;
8236
+ name: string;
8237
+ description?: string;
8238
+ duration_minutes: number;
8239
+ location: PublicEventLocation;
8240
+ is_cancel_allowed: boolean;
8241
+ is_reschedule_allowed: boolean;
8242
+ cancel_notice_minutes: number;
8243
+ }
8244
+ interface PublicHost {
8245
+ user_id: string;
8246
+ display_name: string;
8247
+ headline?: string;
8248
+ }
8249
+ /** What the unauthenticated scheduling page sees of a link. */
8250
+ interface PublicSchedulingLink {
8251
+ org_id: string;
8252
+ key: string;
8253
+ name: string;
8254
+ /** Types offered in link order; one = pre-defined, several = show a picker. */
8255
+ types: PublicCalendarEventType[];
8256
+ hosts: PublicHost[];
8257
+ assignment: Assignment;
8258
+ is_host_selectable: boolean;
8259
+ reschedule_host: RescheduleHost;
8260
+ /** Opened with a contact_id the org knows: no name / email asked. */
8261
+ is_contact_bound: boolean;
8262
+ }
8263
+ interface GetPublicSlotsQuery {
8264
+ type_key?: string;
8265
+ from: string;
8266
+ to: string;
8267
+ timezone: string;
8268
+ host_user_id?: string;
8269
+ }
8270
+ /** A booked event as its contact sees it on the manage page. */
8271
+ interface PublicCalendarEvent {
8272
+ id: string;
8273
+ org_id: string;
8274
+ title: string;
8275
+ start_at: string;
8276
+ end_at: string;
8277
+ timezone?: string;
8278
+ status: EventStatus;
8279
+ location: EventLocation;
8280
+ join_url?: string;
8281
+ link: PublicSchedulingLink;
8282
+ host: PublicHost;
8283
+ contact: BookingContact;
8284
+ is_cancelled: boolean;
8285
+ deleted_at?: string;
8286
+ }
8287
+ interface PublicBookSchedulingLinkResponse extends PublicCalendarEvent {
8288
+ manage_token: string;
8289
+ manage_url?: string;
8290
+ }
8291
+ interface CancelPublicCalendarEventRequest {
8292
+ token: string;
8293
+ reason?: string;
8294
+ }
8295
+ interface ReschedulePublicCalendarEventRequest {
8296
+ token: string;
8297
+ start_at: string;
8298
+ timezone: string;
8299
+ host_user_id?: string;
8300
+ }
8301
+ /** Body of POST /me/calendar-connections/:id/sync (mirrors Go UpdateCalendarSyncRequest). */
8302
+ interface UpdateCalendarSyncRequest {
8303
+ /** Drop the change cursors so the worker re-reads the whole window. */
8304
+ is_rebaseline?: boolean;
8305
+ }
8306
+ /** Scheduling-local page envelope ({meta, data}) — same shape as the conversation module's. */
8307
+ interface ListResponse<T> {
8308
+ meta: ResponseMeta$1;
8309
+ data: T[];
8310
+ }
8311
+ /** Window reads carry no pagination — the window itself bounds the result. */
8312
+ interface CalendarEventsResponse {
8313
+ data: CalendarEvent[];
8314
+ }
8315
+
8316
+ /**
8317
+ * Facade for scheduling-service: calendar connections (bindings to
8318
+ * connector-service google-calendar / microsoft-calendar grants), the
8319
+ * calendars under them with their platform roles, per-user scheduling
8320
+ * profiles, and the two-way calendar_event mirror.
8321
+ *
8322
+ * `*Mine` methods act on the caller's own rows (`/me/...`); `*ForUser`
8323
+ * methods are the admin path (`/users/:userId/...`).
8324
+ *
8325
+ * ```ts
8326
+ * const scheduling = new SchedulingClient(client)
8327
+ * const connection = await scheduling.calendarConnections.connect({ connection_id })
8328
+ * const { data: calendars } = await scheduling.calendars.listMine()
8329
+ * await scheduling.calendars.updateMine(calendars[0].id, { is_synced: true })
8330
+ * const { data: events } = await scheduling.calendarEvents.list({ from, to })
8331
+ * ```
8332
+ */
8333
+ declare class SchedulingClient {
8334
+ readonly calendarConnections: CalendarConnectionService;
8335
+ readonly calendars: CalendarService;
8336
+ readonly schedulingProfiles: SchedulingProfileService;
8337
+ readonly calendarEvents: CalendarEventService;
8338
+ readonly calendarEventTypes: CalendarEventTypeService;
8339
+ readonly availabilityConstraints: AvailabilityConstraintService;
8340
+ readonly slots: SlotService;
8341
+ readonly schedulingLinks: SchedulingLinkService;
8342
+ /** The unauthenticated scheduling page + manage page (no Authorization header). */
8343
+ readonly public: PublicSchedulingService;
8344
+ constructor(client: ProteosClient);
8345
+ }
8346
+ /** Bindings to connector-service calendar grants. */
8347
+ interface CalendarConnectionService {
8348
+ listMine(query?: ListCalendarConnectionsQuery): Promise<ListResponse<CalendarConnection>>;
8349
+ /** Bind one of the caller's user-scope calendar connector connections; discovers its calendars. */
8350
+ connect(request: CreateCalendarConnectionRequest): Promise<CalendarConnection>;
8351
+ updateMine(id: string, request: UpdateCalendarConnectionRequest): Promise<CalendarConnection>;
8352
+ disconnectMine(id: string): Promise<void>;
8353
+ /** Enqueue a sync of every synced calendar under the connection. */
8354
+ syncMine(id: string, request?: UpdateCalendarSyncRequest): Promise<CalendarConnection>;
8355
+ listForUser(userId: string, query?: ListCalendarConnectionsQuery): Promise<ListResponse<CalendarConnection>>;
8356
+ updateForUser(userId: string, id: string, request: UpdateCalendarConnectionRequest): Promise<CalendarConnection>;
8357
+ disconnectForUser(userId: string, id: string): Promise<void>;
8358
+ }
8359
+ /** Provider calendars under a connection + their platform roles. */
8360
+ interface CalendarService {
8361
+ listMine(query?: ListCalendarsQuery): Promise<ListResponse<Calendar>>;
8362
+ getMine(id: string): Promise<Calendar>;
8363
+ updateMine(id: string, request: UpdateCalendarRequest): Promise<Calendar>;
8364
+ listForUser(userId: string, query?: ListCalendarsQuery): Promise<ListResponse<Calendar>>;
8365
+ getForUser(userId: string, id: string): Promise<Calendar>;
8366
+ updateForUser(userId: string, id: string, request: UpdateCalendarRequest): Promise<Calendar>;
8367
+ }
8368
+ /** Per-user scheduling settings (one per org + user; defaults when absent). */
8369
+ interface SchedulingProfileService {
8370
+ getMine(): Promise<SchedulingProfile>;
8371
+ putMine(request: PutSchedulingProfileRequest): Promise<SchedulingProfile>;
8372
+ getForUser(userId: string): Promise<SchedulingProfile>;
8373
+ putForUser(userId: string, request: PutSchedulingProfileRequest): Promise<SchedulingProfile>;
8374
+ }
8375
+ /** The two-way calendar_event mirror. */
8376
+ interface CalendarEventService {
8377
+ /** A window of events (from/to required, ≤ 93 days); colleagues' events come back projected. */
8378
+ list(query: ListCalendarEventsQuery): Promise<CalendarEventsResponse>;
8379
+ get(id: string): Promise<CalendarEvent>;
8380
+ /** Write an event through to the provider (calendar_id = own calendar, or hosts). */
8381
+ create(request: CreateCalendarEventRequest): Promise<CalendarEvent>;
8382
+ /** Partial update; `scope` picks the instance or the whole series on recurring events. */
8383
+ update(id: string, request: UpdateCalendarEventRequest, scope?: RecurrenceScope): Promise<CalendarEvent>;
8384
+ delete(id: string, scope?: RecurrenceScope): Promise<void>;
8385
+ /** Record the caller's RSVP. */
8386
+ respond(id: string, request: RespondCalendarEventRequest): Promise<CalendarEvent>;
8387
+ }
8388
+ /** The slot-rules catalog: calendar event types, keyed by (org, key). */
8389
+ interface CalendarEventTypeService {
8390
+ list(query?: ListCalendarEventTypesQuery): Promise<ListResponse<CalendarEventType>>;
8391
+ get(key: string): Promise<CalendarEventType>;
8392
+ /** Create or replace (PUT semantics: every field is the new value). */
8393
+ put(key: string, request: PutCalendarEventTypeRequest): Promise<CalendarEventType>;
8394
+ update(key: string, request: UpdateCalendarEventTypeRequest): Promise<CalendarEventType>;
8395
+ delete(key: string): Promise<void>;
8396
+ }
8397
+ /** A user's hours and blocks. `*Mine` = the caller's own; `*ForUser` = admin path. */
8398
+ interface AvailabilityConstraintService {
8399
+ listMine(query?: ListAvailabilityConstraintsQuery): Promise<ListResponse<AvailabilityConstraint>>;
8400
+ getMine(id: string): Promise<AvailabilityConstraint>;
8401
+ createMine(request: CreateAvailabilityConstraintRequest): Promise<AvailabilityConstraint>;
8402
+ updateMine(id: string, request: UpdateAvailabilityConstraintRequest): Promise<AvailabilityConstraint>;
8403
+ deleteMine(id: string): Promise<void>;
8404
+ listForUser(userId: string, query?: ListAvailabilityConstraintsQuery): Promise<ListResponse<AvailabilityConstraint>>;
8405
+ getForUser(userId: string, id: string): Promise<AvailabilityConstraint>;
8406
+ createForUser(userId: string, request: CreateAvailabilityConstraintRequest): Promise<AvailabilityConstraint>;
8407
+ updateForUser(userId: string, id: string, request: UpdateAvailabilityConstraintRequest): Promise<AvailabilityConstraint>;
8408
+ deleteForUser(userId: string, id: string): Promise<void>;
8409
+ }
8410
+ /** The slot engine: bookable starts of some hosts under a type's / explicit rules. */
8411
+ interface SlotService {
8412
+ get(request: GetSlotsRequest): Promise<GetSlotsResponse>;
8413
+ }
8414
+ /** Scheduling links: the entry points for taking a slot, plus booking through one. */
8415
+ interface SchedulingLinkService {
8416
+ list(query?: ListSchedulingLinksQuery): Promise<ListResponse<SchedulingLink>>;
8417
+ get(key: string): Promise<SchedulingLink>;
8418
+ create(request: CreateSchedulingLinkRequest): Promise<SchedulingLink>;
8419
+ update(key: string, request: UpdateSchedulingLinkRequest): Promise<SchedulingLink>;
8420
+ delete(key: string): Promise<void>;
8421
+ /** The link as an embedded scheduling picker renders it (types, hosts, policy) — private links included. */
8422
+ getPage(key: string, contactId?: string): Promise<PublicSchedulingLink>;
8423
+ /** The link's slots (its hosts + assignment, its type's rules). */
8424
+ getSlots(key: string, query: GetPublicSlotsQuery): Promise<GetSlotsResponse>;
8425
+ /** Take a slot through the link (scheduling-links:read); an empty contact books for the caller. */
8426
+ book(key: string, request: BookSchedulingLinkRequest): Promise<BookSchedulingLinkResponse>;
8427
+ }
8428
+ /**
8429
+ * The unauthenticated scheduling surface: every call sends NO Authorization
8430
+ * header (skipAuth), so it is safe on the anonymous /s/ routes. Links answer
8431
+ * only when public + enabled; events only with their manage token.
8432
+ */
8433
+ interface PublicSchedulingService {
8434
+ getLink(orgId: string, key: string, contactId?: string): Promise<PublicSchedulingLink>;
8435
+ getSlots(orgId: string, key: string, query: GetPublicSlotsQuery): Promise<GetSlotsResponse>;
8436
+ book(orgId: string, key: string, request: BookSchedulingLinkRequest): Promise<PublicBookSchedulingLinkResponse>;
8437
+ getEvent(orgId: string, id: string, token: string): Promise<PublicCalendarEvent>;
8438
+ cancel(orgId: string, id: string, request: CancelPublicCalendarEventRequest): Promise<PublicCalendarEvent>;
8439
+ reschedule(orgId: string, id: string, request: ReschedulePublicCalendarEventRequest): Promise<PublicBookSchedulingLinkResponse>;
8440
+ }
8441
+
7511
8442
  /**
7512
8443
  * A version of a stored file. Each file has one or more versions; the file's
7513
8444
  * `current_version` points at the latest. Size is carried here, not on the
@@ -8417,4 +9348,4 @@ declare class WorkflowClient {
8417
9348
  constructor(client: ProteosClient);
8418
9349
  }
8419
9350
 
8420
- export { type AcceptMistranscribedTermRequest, AccountClient, type Action, type ActionBinding, ActionSchema, type ActionScope, ActionScopeSchema, type ActionService, type AddTeamMemberRequest, type AddressFilterConfig, type Agent, type AgentActionParams, type AgentArtifactsPayload, AgentClient, type AgentListener, type AgentListenerAcknowledgementConfig, type AgentListenerAcknowledgementType, type AgentListenerActingUserMode, type AgentListenerService, type AgentListenerTriggerType, type AgentMessagePayload, type AgentResourceListOptions, type AgentService, type AllFilterConfig, type ApiErrorResponse, type ApiKey, type AppendEventRequest, type ApplySendingLimitPresetRequest, type AssignPermissionRequest, type AssignRoleRequest, type AttachContactAddressRequest, type AttachConversationBriefRequest, type Attachment, Attribute, AuditFields, type AuthListOptions, type AuthoredTranscriptTurn, type AutomatedFilterConfig, type AutomatedSignal, type BatchTransactionError, BatchTransactionErrorSchema, type BatchTransactionStatus, type BatchUpsertRecordsResponse, BatchUpsertRecordsResponseSchema, type BatchUpsertTransaction, type BatchUpsertTransactionResult, BatchUpsertTransactionResultSchema, BatchUpsertTransactionSchema, type BinaryRef, type BlockContactRequest, type BounceClassification, type BounceKind, type CallStatus, type CallTokenResponse, type Channel, type ChannelAction, type ChannelActionCapability, type ChannelActionParams, type ChannelActionResponse, type ChannelActionService, type ChannelActionStatus, type ChannelActionTargetKind, type ChannelActionType, type ChannelEvent, type ChannelEventService, type ChannelEventType, type ClientEventType, type ClientToolSchema, type Connection, type ConnectionCredentials, type ConnectionEndpoint, type ConnectionScope, type ConnectionService, type ConnectionStatus, type ConnectionSyncRange, type ConnectionSyncStatus, type Connector, type ConnectorCatalogEntry, ConnectorClient, type ConnectorConnection, type ConnectionScope$1 as ConnectorConnectionScope, type ConnectionStatus$1 as ConnectorConnectionStatus, type ConnectionTokenResponse as ConnectorConnectionTokenResponse, type CredentialKind as ConnectorCredentialKind, type ConnectorKey, type ConnectorMethod, type ConnectorProvider, type ConsentStatus, type ConsumerGroup, type Contact, type ContactAddress, type ContactAddressKind, type ContactAddressSource, type ContactErasureRequest, type ContactGroup, type ContactGroupService, type ContactGroupSource, type ContactMergeProposal, type ContactRef, type ContactService, type ContactSource, type ContactStatus, type ContentBlock$1 as ContentBlock, type ContentMatch, type ContentResponse, type ContextCompactedPayload, type Conversation, type ConversationBrief, type ConversationBriefService, type ConversationBriefStatus, ConversationClient, type ConversationFilter, type ConversationFilterAction, type ConversationFilterConfig, type ConversationFilterEvent, type ConversationFilterService, type ConversationFilterType, type ConversationParticipant, type ConversationService, type ConversationStatus, type ConversationSummaryStatus, type ConversationType, type ConversationTypeConfig, type ConversationTypeService, type CreateAgentListenerRequest, type CreateAgentRequest, type CreateApiKeyRequest, type CreateConnectionRequest, type CreateConnectorConnectionRequest, type CreateContactGroupRequest, type CreateContactRequest, type CreateConversationBriefRequest, type CreateConversationFilterRequest, type CreateConversationTypeRequest, type CreateFileMetadata, type CreateGlossaryTermRequest, type CreateLabelRequest, type CreateLinkRequest, type CreateMcpServerRequest, type CreateNodeRequest, type CreateOrganizationRequest, type CreateProfileRequest, type CreatePromptRequest, type CreateRecordLinkRequest, type CreateRoleRequest, type CreateSendingRuleRequest, type CreateSessionRequest, type CreateSpaceRequest, type CreateTeamRequest, type CreateToneProfileSetupRequest, type CreateToolRequest, type CreateToolsetRequest, type CreateTranscriptionFromTextRequest, type CreateUserRequest, type CreateWorkflowRequest, type CreatedApiKey, type CredentialSpec, type CronTriggerParams, DEFAULT_PORT, DataClient, type DependentAgent, type DependentSyncResult, type DispatchMeetingBotRequest, type DisplayOptions, type DomainFilterConfig, ERROR_PORT, type EditContentRequest, type EditContentResponse, type EmailDnsRecord, type EmailDomainStatus, type EmailEngagementQuality, type EmailHealth, type EmailHealthWindow, type EmailIp, type EmailProviderHealth, type EmailProviderStats, type EmailSender, type EmailSenderStatus, type EmailSuppression, type EmailSuppressionCounts, type EmailSuppressionKind, type EmptyPayload, type ErasureRequestStatus, ErrorCode, type ErrorCodeType, type ErrorPayload, type EventTriggerParams, type EventType, type EventVerb, EventsClient, type ExecutionError, type ExecutionStatus, type ExecutionTriggerContext, type FileBlock, FileRef, type FileService, type FileVersionContent, type FilterMatchOn, type FrequencyCapRuleConfig, FunctionsClient, type GetConnectionHealthQuery, type GetExecutionDetailResponse, type GetGraphOptions, type GetNodeExecutionItemsOptions, type GetNodeExecutionItemsResponse, type GetNodeTypesResponse, type GlossaryTerm, type GlossaryTermService, type GraphService, type InlineLinkRequest, type InmailParams, type InstallConnectionResponse, type InstallConnectorConnectionResponse, type InternalConversationsFilterConfig, type InvitationParams, type InvokeActionResponse, type InvokeNodeMethodRequest, type InvokeNodeMethodResponse, type Item, type KickoffSource, type KickoffType, KnowledgeClient, type KnowledgeGraph, type KnowledgeGraphLink, type KnowledgeGraphNode, type KnowledgeLabel, KnowledgeLabelSchema, type KnowledgeLink, KnowledgeLinkSchema, type KnowledgeNode, type KnowledgeNodeLabel, KnowledgeNodeLabelSchema, type KnowledgeNodeMetadata, KnowledgeNodeMetadataSchema, KnowledgeNodeSchema, type KnowledgeNodeSearchResult, KnowledgeNodeSearchResultSchema, type KnowledgeRecordLink, KnowledgeRecordLinkSchema, type KnowledgeSpace, type LabelService, type LimitRuleConfig, type LinkService, type LinkType, type ListActionsOptions, type ListAgentListenersQuery, type ListAgentsOptions, type ListChannelActionsQuery, type ListChannelEventsQuery, type ListConnectionsQuery, type ListConnectorConnectionsQuery, type ListConnectorsQuery, type ListContactAddressesQuery, type ListContactGroupsQuery, type ListContactMergeProposalsQuery, type ListContactsQuery, type ListConversationBriefsQuery, type ListConversationFilterEventsQuery, type ListConversationFiltersQuery, type ListConversationTypesQuery, type ListConversationsQuery, type ListEventsOptions, type ListExecutionsOptions, type ListGlossaryTermsQuery, type ListLabelsOptions, type ListLinksOptions, type ListMcpServersOptions, type ListMessagesQuery, type ListMistranscribedTermsQuery, type ListNodesOptions, ListOptions, type ListOrgUserRoleAssignmentsOptions, type ListOrganizationsOptions, type ListProfilesOptions, type ListPromptsOptions, type ListRecordLinksOptions, type ListRecordsOptions, type ListResponse, ListResult, type ListRolePermissionsOptions, type ListRolesOptions, type ListRoomsQuery, type ListSendingLimitPresetsQuery, type ListSendingRulesQuery, type ListSessionsOptions, type ListSkillsOptions, type ListSpacesOptions, type ListTeamMembersOptions, type ListTeamsOptions, type ListToneProfileSetupsQuery, type ListToneProfilesQuery, type ListToolsOptions, type ListToolsetsOptions, type ListUserProfileAssignmentsOptions, type ListUserRoleAssignmentsOptions, type ListUsersOptions, type ListWorkflowsOptions, type ManualTriggerParams, type MatchMode, type McpBinding, type McpConnectionState, type McpConnectionStatus, type McpServer, type McpServerAuth, type McpServerOAuth, type McpServerService, type McpToolSummary, type MeService, type MeetingService, type MergeContactsRequest, type MergeProposalStatus, type Message, type ContentBlock as MessageContentBlock, type MessageDelivery, type MessageDeliveryStatus, type MessageDirection, type MessagePreview, type MessageRecipient, type MessageService, type MessageStatus, type MessageTriggerParams, type MintCallTokenRequest, type MistranscribedTerm, type MistranscribedTermService, type MistranscribedTermStatus, type MistranscriptionSuggestionSource, type ModelCallParams, type ModelConfig, type ModelRequestEndPayload, type ModelRequestStartPayload, type ModelUsage, type NeighborDirection, type NeighborEdge, type NeighborNode, type NeighborsOptions, type NodeContentMatches, type NodeDescriptor, type NodeExecution, type NodeGroup, type NodeMethodOption, type NodeNeighborhood, NodeNeighborhoodSchema, type NodeOutline, type NodePosition, type NodeProperty, type NodeRetryPolicy, type NodeRuntime, type NodeService, type NodeStatus, type NodeType, type NodeTypeKey, type NodeTypeService, type NodeTypeStatus, type OnErrorPolicy, type Organization, OrganizationSchema, type OrganizationService, type OutlineHeading, type OutlineRequest, type OutlineResponse, PLATFORM_ENTITIES, PLATFORM_ENTITY_SLUGS, PageIterator, type PairedItem, type ParseStatus, type PerformChannelActionRequest, type Permission, type PermissionEventSource, type PermissionEventType, type PhoneNumber, type PhoneNumberRouting, type PhoneNumberStatus, type PlatformBinding, type PlatformEntity, type PlatformEvent, type PortSpec, type Profile, ProfileSchema, type ProfileService, type ProfileVisitParams, type Prompt, type PromptService, type PromptVersion, type PropertyOption, type PropertyType, ProteosClient, ProteosError, PublicAccessOperation, type PublishEventRequest, type QueryBinding, type QueryExecuteMeta, type QueryExecuteResponse, type QueryObject, type QueryRow, type QueryService, type QueryValidateMeta, type QueryValidateResponse, type QueryValue, type Reaction, type ReactionCapability, type ReactionOption, type ReactionSetKind, type ReasoningPayload, type RecipientKind, type RecipientRole, type RecordData, type RecordLinkService, type RecordPermissionEventRequest, type RecordService, type RedriveResult, type ResolveToneProfileQuery, type RespondChannelActionRequest, type ResultBlock, type Role, type RoleBasedFilterConfig, type RoleEntityPermission, RoleEntityPermissionSchema, RoleSchema, type RoleService, type Room, type RoutingTarget, type RunWorkflowRequest, SCOPED_PLATFORM_ENTITY_SLUGS, type SearchContentRequest, type SearchContentResponse, type SearchNodesRequest, type SendEligibility, type SendEligibilityRequest, type SendMessageRequest, type SendRecipient, type SendingLimitPreset, type SendingPeriod, type SendingRule, type SendingRuleConfig, type SendingRuleService, type SendingRuleType, type Session, type SessionEvent, type SessionEventEnvelope, type SessionEventsOptions, type SessionIdlePayload, type SessionService, type SessionStatus, type SessionStreamOptions, type SessionUpdatedPayload, type SetDefaultSenderRequest, type SetProfileRequest, type SharePermission, type ShareRow, type ShareService, type Skill, type SkillBundle, type SkillService, type SkillVersion, type SpaceService, type StartMcpOAuthResponse, type StopReason, StorageClient, type StorageFile, type StorageFileVersion, type SyncConnectionRequest, type SystemSource, type TailOptions, type Team, type TeamMember, type TeamService, type TestNodeCandidate, type TestNodeInputSource, type TestNodeRequest, type TestNodeResponse, type TextBlock, type ToneProfile, type ToneProfileScope, type ToneProfileService, type ToneProfileSetup, type ToneProfileSetupStatus, type ToneProfileSource, type Tool, type ToolBinding, type ToolConfirmationPayload, type ToolKind, type ToolResultPayload, type ToolService, type ToolUsePayload, type Toolset, type ToolsetKind, type ToolsetService, type ToolsetToolSummary, type Topic, type TopicKind, type TopicService, type TranscribeStreamOptions, type TranscriptResult, type TranscriptTurn, type Transcription, type TranscriptionReviewStatus, type TranscriptionStatus, type TriggerKind, type Turn, UNASSIGNED_SPACE_SLUG, type UnreadCounts, type UpdateAgentListenerRequest, type UpdateAgentRequest, type UpdateConnectionRequest, type UpdateConnectorConnectionRequest, type UpdateContactGroupRequest, type UpdateContactRequest, type UpdateConversationBriefRequest, type UpdateConversationFilterRequest, type UpdateConversationTypeRequest, type UpdateDraftRequest, type UpdateFileMetadata, type UpdateGlossaryTermRequest, type UpdateLabelRequest, type UpdateLinkRequest, type UpdateMcpServerRequest, type UpdateMeRequest, type UpdateNodeRequest, type UpdateOrganizationRequest, type UpdatePhoneNumberRequest, type UpdateProfileRequest, type UpdatePromptRequest, type UpdateRoleRequest, type UpdateSendingRuleRequest, type UpdateSpaceRequest, type UpdateTeamRequest, type UpdateToolRequest, type UpdateToolsetRequest, type UpdateUserRequest, type UpdateWorkflowRequest, type UpsertToneProfileRequest, type User, type UserMessagePayload, type UserProfileAssignment, UserProfileAssignmentSchema, type UserProfileAssignmentService, UserRef$2 as UserRef, type UserRoleAssignment, UserRoleAssignmentSchema, type UserRoleAssignmentService, UserSchema, type UserService, type VoiceService, type VoiceTranscriptionStream, type WarmupRuleConfig, type WebhookTriggerParams, type Weekday, type WindowDay, type WindowRuleConfig, type Workflow, WorkflowClient, type WorkflowConnection, type WorkflowExecution, type WorkflowGraph, type WorkflowNode, type WorkflowNodeType, type WorkflowStatus, type WorkflowVersion, type WorkflowVersionAuthor, type WorkflowVersionSummary, type WriteContentResponse, type WriteCredentialsRequest, buildUrl, getDefaultErrorCode, isBadRequest, isConflict, isForbidden, isNotFound, isPlatformEntity, isProteosError, isShareable, isUnauthorized, parseErrorResponse, shareRouteFor, toQueryParams, toQueryString };
9351
+ export { type AcceptMistranscribedTermRequest, AccountClient, type Action, type ActionBinding, ActionSchema, type ActionScope, ActionScopeSchema, type ActionService, type AddTeamMemberRequest, type AddressFilterConfig, type Agent, type AgentActionParams, type AgentArtifactsPayload, AgentClient, type AgentListener, type AgentListenerAcknowledgementConfig, type AgentListenerAcknowledgementType, type AgentListenerActingUserMode, type AgentListenerService, type AgentListenerTriggerType, type AgentMessagePayload, type AgentResourceListOptions, type AgentService, type AllFilterConfig, type ApiErrorResponse, type ApiKey, type AppendEventRequest, type ApplySendingLimitPresetRequest, type AssignPermissionRequest, type AssignRoleRequest, type Assignment, type AttachContactAddressRequest, type AttachConversationBriefRequest, type Attachment, Attribute, AuditFields, type AuthListOptions, type AuthoredTranscriptTurn, type AutomatedFilterConfig, type AutomatedSignal, type AvailabilityConstraint, type AvailabilityConstraintService, type AvailabilityKind, type BatchTransactionError, BatchTransactionErrorSchema, type BatchTransactionStatus, type BatchUpsertRecordsResponse, BatchUpsertRecordsResponseSchema, type BatchUpsertTransaction, type BatchUpsertTransactionResult, BatchUpsertTransactionResultSchema, BatchUpsertTransactionSchema, type BinaryRef, type BlockContactRequest, type BookSchedulingLinkRequest, type BookSchedulingLinkResponse, type BookingContact, type BounceClassification, type BounceKind, type Calendar, type CalendarAttendee, type CalendarAttendeeRequest, type CalendarConnection, type CalendarConnectionService, type CalendarConnectionStatus, type CalendarEvent, type CalendarEventService, type CalendarEventType, type CalendarEventTypeService, type CalendarEventsResponse, type CalendarProvider, type CalendarService, type CalendarSync, type CalendarSyncStatus, type CalendarVisibility, type CalendarWatch, type CallStatus, type CallTokenResponse, type CancelPublicCalendarEventRequest, type Channel, type ChannelAction, type ChannelActionCapability, type ChannelActionParams, type ChannelActionResponse, type ChannelActionService, type ChannelActionStatus, type ChannelActionTargetKind, type ChannelActionType, type ChannelEvent, type ChannelEventService, type ChannelEventType, type ClientEventType, type ClientToolSchema, type ConferencingProvider, type Connection, type ConnectionCredentials, type ConnectionEndpoint, type ConnectionScope, type ConnectionService, type ConnectionStatus, type ConnectionSyncRange, type ConnectionSyncStatus, type Connector, type ConnectorCatalogEntry, ConnectorClient, type ConnectorConnection, type ConnectionScope$1 as ConnectorConnectionScope, type ConnectionStatus$1 as ConnectorConnectionStatus, type ConnectionTokenResponse as ConnectorConnectionTokenResponse, type CredentialKind as ConnectorCredentialKind, type ConnectorKey, type ConnectorMethod, type ConnectorProvider, type ConsentStatus, type ConsumerGroup, type Contact, type ContactAddress, type ContactAddressKey, type ContactAddressKind, type ContactAddressSource, type ContactErasureRequest, type ContactGroup, type ContactGroupService, type ContactGroupSource, type ContactMergeProposal, type ContactRecordLink, type ContactRecordLinkSource, type ContactRef, type ContactService, type ContactSource, type ContactStatus, type ContentBlock$1 as ContentBlock, type ContentMatch, type ContentResponse, type ContextCompactedPayload, type Conversation, type ConversationBrief, type ConversationBriefService, type ConversationBriefStatus, ConversationClient, type ConversationFilter, type ConversationFilterAction, type ConversationFilterConfig, type ConversationFilterEvent, type ConversationFilterService, type ConversationFilterType, type ConversationParticipant, type ConversationService, type ConversationStatus, type ConversationSummaryStatus, type ConversationType, type ConversationTypeConfig, type ConversationTypeService, type CreateAgentListenerRequest, type CreateAgentRequest, type CreateApiKeyRequest, type CreateAvailabilityConstraintRequest, type CreateCalendarConnectionRequest, type CreateCalendarEventRequest, type CreateConnectionRequest, type CreateConnectorConnectionRequest, type CreateContactGroupRequest, type CreateContactRecordLinkRequest, type CreateContactRequest, type CreateConversationBriefRequest, type CreateConversationFilterRequest, type CreateConversationTypeRequest, type CreateFileMetadata, type CreateGlossaryTermRequest, type CreateLabelRequest, type CreateLinkRequest, type CreateMcpServerRequest, type CreateNodeRequest, type CreateOrganizationRequest, type CreateProfileRequest, type CreatePromptRequest, type CreateRecordLinkRequest, type CreateRoleRequest, type CreateSchedulingLinkRequest, type CreateSendingRuleRequest, type CreateSessionRequest, type CreateSpaceRequest, type CreateTeamRequest, type CreateToneProfileSetupRequest, type CreateToolRequest, type CreateToolsetRequest, type CreateTranscriptionFromTextRequest, type CreateUserRequest, type CreateWorkflowRequest, type CreatedApiKey, type CredentialSpec, type CronTriggerParams, DEFAULT_PORT, DataClient, type DependentAgent, type DependentSyncResult, type DispatchMeetingBotRequest, type DisplayOptions, type DomainFilterConfig, ERROR_PORT, type EditContentRequest, type EditContentResponse, type EmailDnsRecord, type EmailDomainStatus, type EmailEngagementQuality, type EmailHealth, type EmailHealthWindow, type EmailIp, type EmailProviderHealth, type EmailProviderStats, type EmailSender, type EmailSenderStatus, type EmailSuppression, type EmailSuppressionCounts, type EmailSuppressionKind, type EmptyPayload, type ErasureRequestStatus, ErrorCode, type ErrorCodeType, type ErrorPayload, type EventLocation, type EventSource, type EventStatus, type EventTransparency, type EventTriggerParams, type EventType, type EventVerb, type EventVisibility, type EventWriteStatus, EventsClient, type ExecutionError, type ExecutionStatus, type ExecutionTriggerContext, type FileBlock, FileRef, type FileService, type FileVersionContent, type FilterMatchOn, type FrequencyCapRuleConfig, FunctionsClient, type GetConnectionHealthQuery, type GetExecutionDetailResponse, type GetGraphOptions, type GetNodeExecutionItemsOptions, type GetNodeExecutionItemsResponse, type GetNodeTypesResponse, type GetPublicSlotsQuery, type GetSlotsRequest, type GetSlotsResponse, type GlossaryTerm, type GlossaryTermService, type GraphService, type HostsRequest, type InlineLinkRequest, type InmailParams, type InstallConnectionResponse, type InstallConnectorConnectionResponse, type InternalConversationsFilterConfig, type InvitationParams, type InvokeActionResponse, type InvokeNodeMethodRequest, type InvokeNodeMethodResponse, type Item, type KickoffSource, type KickoffType, KnowledgeClient, type KnowledgeGraph, type KnowledgeGraphLink, type KnowledgeGraphNode, type KnowledgeLabel, KnowledgeLabelSchema, type KnowledgeLink, KnowledgeLinkSchema, type KnowledgeNode, type KnowledgeNodeLabel, KnowledgeNodeLabelSchema, type KnowledgeNodeMetadata, KnowledgeNodeMetadataSchema, KnowledgeNodeSchema, type KnowledgeNodeSearchResult, KnowledgeNodeSearchResultSchema, type KnowledgeRecordLink, KnowledgeRecordLinkSchema, type KnowledgeSpace, type LabelService, type LimitRuleConfig, type LinkService, type LinkType, type ListActionsOptions, type ListAgentListenersQuery, type ListAgentsOptions, type ListAvailabilityConstraintsQuery, type ListCalendarConnectionsQuery, type ListCalendarEventTypesQuery, type ListCalendarEventsQuery, type ListCalendarsQuery, type ListChannelActionsQuery, type ListChannelEventsQuery, type ListConnectionsQuery, type ListConnectorConnectionsQuery, type ListConnectorsQuery, type ListContactAddressesQuery, type ListContactGroupsQuery, type ListContactMergeProposalsQuery, type ListContactRecordLinksQuery, type ListContactsQuery, type ListConversationBriefsQuery, type ListConversationFilterEventsQuery, type ListConversationFiltersQuery, type ListConversationTypesQuery, type ListConversationsQuery, type ListEventsOptions, type ListExecutionsOptions, type ListGlossaryTermsQuery, type ListLabelsOptions, type ListLinksOptions, type ListMcpServersOptions, type ListMessagesQuery, type ListMistranscribedTermsQuery, type ListNodesOptions, ListOptions, type ListOrgUserRoleAssignmentsOptions, type ListOrganizationsOptions, type ListProfilesOptions, type ListPromptsOptions, type ListRecordDuplicatesQuery, type ListRecordLinksOptions, type ListRecordsOptions, type ListResponse$1 as ListResponse, ListResult, type ListRolePermissionsOptions, type ListRolesOptions, type ListRoomsQuery, type ListSchedulingLinksQuery, type ListSendingLimitPresetsQuery, type ListSendingRulesQuery, type ListSessionsOptions, type ListSkillsOptions, type ListSpacesOptions, type ListTeamMembersOptions, type ListTeamsOptions, type ListToneProfileSetupsQuery, type ListToneProfilesQuery, type ListToolsOptions, type ListToolsetsOptions, type ListUserProfileAssignmentsOptions, type ListUserRoleAssignmentsOptions, type ListUsersOptions, type ListWorkflowsOptions, type LocationKind, type ManualTriggerParams, type MatchMode, type McpBinding, type McpConnectionState, type McpConnectionStatus, type McpServer, type McpServerAuth, type McpServerOAuth, type McpServerService, type McpToolSummary, type MeService, type MeetingService, type MergeContactsRequest, type MergeProposalStatus, type Message, type ContentBlock as MessageContentBlock, type MessageDelivery, type MessageDeliveryStatus, type MessageDirection, type MessagePreview, type MessageRecipient, type MessageService, type MessageStatus, type MessageTriggerParams, type MintCallTokenRequest, type MistranscribedTerm, type MistranscribedTermService, type MistranscribedTermStatus, type MistranscriptionSuggestionSource, type ModelCallParams, type ModelConfig, type ModelRequestEndPayload, type ModelRequestStartPayload, type ModelUsage, type NeighborDirection, type NeighborEdge, type NeighborNode, type NeighborsOptions, type NodeContentMatches, type NodeDescriptor, type NodeExecution, type NodeGroup, type NodeMethodOption, type NodeNeighborhood, NodeNeighborhoodSchema, type NodeOutline, type NodePosition, type NodeProperty, type NodeRetryPolicy, type NodeRuntime, type NodeService, type NodeStatus, type NodeType, type NodeTypeKey, type NodeTypeService, type NodeTypeStatus, type NotifyMode, type OnErrorPolicy, type Organization, OrganizationSchema, type OrganizationService, type OutlineHeading, type OutlineRequest, type OutlineResponse, PLATFORM_ENTITIES, PLATFORM_ENTITY_SLUGS, PageIterator, type PairedItem, type ParseStatus, type ParticipationStatus, type PerformChannelActionRequest, type Permission, type PermissionEventSource, type PermissionEventType, type PhoneNumber, type PhoneNumberRouting, type PhoneNumberStatus, type PlatformBinding, type PlatformEntity, type PlatformEvent, type PortSpec, type Profile, ProfileSchema, type ProfileService, type ProfileVisitParams, type Prompt, type PromptService, type PromptVersion, type PropertyOption, type PropertyType, ProteosClient, ProteosError, PublicAccessOperation, type PublicBookSchedulingLinkResponse, type PublicCalendarEvent, type PublicCalendarEventType, type PublicEventLocation, type PublicHost, type PublicSchedulingLink, type PublicSchedulingService, type PublishContactObservationsResponse, type PublishEventRequest, type PutCalendarEventTypeRequest, type PutSchedulingProfileRequest, type QueryBinding, type QueryExecuteMeta, type QueryExecuteResponse, type QueryObject, type QueryRow, type QueryService, type QueryValidateMeta, type QueryValidateResponse, type QueryValue, type Reaction, type ReactionCapability, type ReactionOption, type ReactionSetKind, type ReasoningPayload, type RecipientKind, type RecipientRole, type RecordData, type RecordDuplicate, type RecordDuplicateService, type RecordDuplicateSource, type RecordDuplicateStatus, type RecordLinkService, type RecordPermissionEventRequest, type RecordRef, type RecordService, type RecurrenceScope, type RedriveResult, type RescheduleHost, type ReschedulePublicCalendarEventRequest, type ResolveToneProfileQuery, type RespondCalendarEventRequest, type RespondChannelActionRequest, ResponseMeta$1 as ResponseMeta, type ResultBlock, type Role, type RoleBasedFilterConfig, type RoleEntityPermission, RoleEntityPermissionSchema, RoleSchema, type RoleService, type Room, type RoutingTarget, type RunWorkflowRequest, SCOPED_PLATFORM_ENTITY_SLUGS, SchedulingClient, type SchedulingLink, type SchedulingLinkService, type ListResponse as SchedulingListResponse, type SchedulingProfile, type SchedulingProfileService, type SearchContentRequest, type SearchContentResponse, type SearchNodesRequest, type SendEligibility, type SendEligibilityRequest, type SendMessageRequest, type SendRecipient, type SendingLimitPreset, type SendingPeriod, type SendingRule, type SendingRuleConfig, type SendingRuleService, type SendingRuleType, type Session, type SessionEvent, type SessionEventEnvelope, type SessionEventsOptions, type SessionIdlePayload, type SessionService, type SessionStatus, type SessionStreamOptions, type SessionUpdatedPayload, type SetDefaultSenderRequest, type SetProfileRequest, type SharePermission, type ShareRow, type ShareService, type Skill, type SkillBundle, type SkillService, type SkillVersion, type Slot, type SlotParameters, type SlotService, type SlotUnavailability, type SlotUnavailabilityReason, type SpaceService, type StartMcpOAuthResponse, type StopReason, StorageClient, type StorageFile, type StorageFileVersion, type SyncConnectionRequest, type SystemSource, type TailOptions, type Team, type TeamMember, type TeamService, type TestNodeCandidate, type TestNodeInputSource, type TestNodeRequest, type TestNodeResponse, type TextBlock, type ToneProfile, type ToneProfileScope, type ToneProfileService, type ToneProfileSetup, type ToneProfileSetupStatus, type ToneProfileSource, type Tool, type ToolBinding, type ToolConfirmationPayload, type ToolKind, type ToolResultPayload, type ToolService, type ToolUsePayload, type Toolset, type ToolsetKind, type ToolsetService, type ToolsetToolSummary, type Topic, type TopicKind, type TopicService, type TranscribeStreamOptions, type TranscriptResult, type TranscriptTurn, type Transcription, type TranscriptionReviewStatus, type TranscriptionStatus, type TriggerKind, type Turn, UNASSIGNED_SPACE_SLUG, type UnreadCounts, type UpdateAgentListenerRequest, type UpdateAgentRequest, type UpdateAvailabilityConstraintRequest, type UpdateCalendarConnectionRequest, type UpdateCalendarEventRequest, type UpdateCalendarEventTypeRequest, type UpdateCalendarRequest, type UpdateCalendarSyncRequest, type UpdateConnectionRequest, type UpdateConnectorConnectionRequest, type UpdateContactGroupRequest, type UpdateContactRequest, type UpdateConversationBriefRequest, type UpdateConversationFilterRequest, type UpdateConversationTypeRequest, type UpdateDraftRequest, type UpdateFileMetadata, type UpdateGlossaryTermRequest, type UpdateLabelRequest, type UpdateLinkRequest, type UpdateMcpServerRequest, type UpdateMeRequest, type UpdateNodeRequest, type UpdateOrganizationRequest, type UpdatePhoneNumberRequest, type UpdateProfileRequest, type UpdatePromptRequest, type UpdateRoleRequest, type UpdateSchedulingLinkRequest, type UpdateSendingRuleRequest, type UpdateSpaceRequest, type UpdateTeamRequest, type UpdateToolRequest, type UpdateToolsetRequest, type UpdateUserRequest, type UpdateWorkflowRequest, type UpsertToneProfileRequest, type User, type UserMessagePayload, type UserProfileAssignment, UserProfileAssignmentSchema, type UserProfileAssignmentService, UserRef$2 as UserRef, type UserRoleAssignment, UserRoleAssignmentSchema, type UserRoleAssignmentService, UserSchema, type UserService, type VoiceService, type VoiceTranscriptionStream, type WarmupRuleConfig, type WebhookTriggerParams, type Weekday, type WindowDay, type WindowRuleConfig, type Workflow, WorkflowClient, type WorkflowConnection, type WorkflowExecution, type WorkflowGraph, type WorkflowNode, type WorkflowNodeType, type WorkflowStatus, type WorkflowVersion, type WorkflowVersionAuthor, type WorkflowVersionSummary, type WriteContentResponse, type WriteCredentialsRequest, buildUrl, getDefaultErrorCode, isBadRequest, isConflict, isForbidden, isNotFound, isPlatformEntity, isProteosError, isShareable, isUnauthorized, parseErrorResponse, shareRouteFor, toQueryParams, toQueryString };