import { type Client } from '../../../../seam/connect/client.js'; import { type SeamHttpFromPublishableKeyOptions, type SeamHttpOptions, type SeamHttpOptionsWithApiKey, type SeamHttpOptionsWithClient, type SeamHttpOptionsWithClientSessionToken, type SeamHttpOptionsWithConsoleSessionToken, type SeamHttpOptionsWithPersonalAccessToken, type SeamHttpRequestOptions } from '../../../../seam/connect/options.js'; import type { ConnectedAccount } from '../../../../seam/connect/resources/connected-account.js'; import { SeamHttpRequest } from '../../../../seam/connect/seam-http-request.js'; import { SeamPaginator } from '../../../../seam/connect/seam-paginator.js'; import { SeamHttpConnectedAccountsSimulate } from './simulate/index.js'; export declare class SeamHttpConnectedAccounts { client: Client; readonly defaults: Required; readonly ltsVersion = "1.0.0"; static ltsVersion: string; constructor(apiKeyOrOptions?: string | SeamHttpOptions); static fromClient(client: SeamHttpOptionsWithClient['client'], options?: Omit): SeamHttpConnectedAccounts; static fromApiKey(apiKey: SeamHttpOptionsWithApiKey['apiKey'], options?: Omit): SeamHttpConnectedAccounts; static fromClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken'], options?: Omit): SeamHttpConnectedAccounts; static fromPublishableKey(publishableKey: string, userIdentifierKey: string, options?: SeamHttpFromPublishableKeyOptions): Promise; static fromConsoleSessionToken(consoleSessionToken: SeamHttpOptionsWithConsoleSessionToken['consoleSessionToken'], workspaceId: SeamHttpOptionsWithConsoleSessionToken['workspaceId'], options?: Omit): SeamHttpConnectedAccounts; static fromPersonalAccessToken(personalAccessToken: SeamHttpOptionsWithPersonalAccessToken['personalAccessToken'], workspaceId: SeamHttpOptionsWithPersonalAccessToken['workspaceId'], options?: Omit): SeamHttpConnectedAccounts; createPaginator(request: SeamHttpRequest): SeamPaginator; updateClientSessionToken(clientSessionToken: SeamHttpOptionsWithClientSessionToken['clientSessionToken']): Promise; get simulate(): SeamHttpConnectedAccountsSimulate; /** * Deletes a specified [connected account](https://docs.seam.co/core-concepts/connected-accounts). * * Deleting a connected account triggers a `connected_account.deleted` event and removes the connected account and all data associated with the connected account from Seam, including devices, events, access codes, and so on. For every deleted resource, Seam sends a corresponding deleted event, but the resource is not deleted from the provider. * * For example, if you delete a connected account with a device that has an access code, Seam sends a `connected_account.deleted` event, a `device.deleted` event, and an `access_code.deleted` event, but Seam does not remove the access code from the device. */ delete(parameters: ConnectedAccountsDeleteParameters, options?: ConnectedAccountsDeleteOptions): ConnectedAccountsDeleteRequest; /** * Returns a specified [connected account](https://docs.seam.co/core-concepts/connected-accounts). */ get(parameters?: ConnectedAccountsGetParameters, options?: ConnectedAccountsGetOptions): ConnectedAccountsGetRequest; /** * Returns a list of all [connected accounts](https://docs.seam.co/core-concepts/connected-accounts). */ list(parameters?: ConnectedAccountsListParameters, options?: ConnectedAccountsListOptions): ConnectedAccountsListRequest; /** * Request a [connected account](https://docs.seam.co/core-concepts/connected-accounts) sync attempt for the specified `connected_account_id`. */ sync(parameters: ConnectedAccountsSyncParameters, options?: ConnectedAccountsSyncOptions): ConnectedAccountsSyncRequest; /** * Updates a [connected account](https://docs.seam.co/core-concepts/connected-accounts). */ update(parameters: ConnectedAccountsUpdateParameters, options?: ConnectedAccountsUpdateOptions): ConnectedAccountsUpdateRequest; } export type ConnectedAccountsDeleteParameters = { /** * ID of the connected account that you want to delete. */ connected_account_id: string; }; /** * @deprecated Use ConnectedAccountsDeleteRequest instead. */ export type ConnectedAccountsDeleteResponse = void; export type ConnectedAccountsDeleteRequest = SeamHttpRequest; export interface ConnectedAccountsDeleteOptions { } export type ConnectedAccountsGetParameters = { /** * ID of the connected account that you want to get. */ connected_account_id?: string | undefined; /** * Email address associated with the connected account that you want to get. */ email?: string | undefined; }; /** * @deprecated Use ConnectedAccountsGetRequest instead. */ export type ConnectedAccountsGetResponse = { connected_account: ConnectedAccount; }; export type ConnectedAccountsGetRequest = SeamHttpRequest; export interface ConnectedAccountsGetOptions { } export type ConnectedAccountsListParameters = { /** * Custom metadata pairs by which you want to filter connected accounts. Returns connected accounts with `custom_metadata` that contains all of the provided key:value pairs. */ custom_metadata_has?: Record | undefined; /** * Customer key by which you want to filter connected accounts. */ customer_key?: string | undefined; /** * Maximum number of records to return per page. */ limit?: number | undefined; /** * Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`. */ page_cursor?: string | undefined; /** * String for which to search. Filters returned connected accounts to include all records that satisfy a partial match using `connected_account_id`, `account_type`, `customer_key`, `custom_metadata`, `user_identifier.username`, `user_identifier.email` or `user_identifier.phone`. */ search?: string | undefined; /** * ID of the space by which you want to filter connected accounts. */ space_id?: string | undefined; /** * Your user ID for the user by which you want to filter connected accounts. */ user_identifier_key?: string | undefined; }; /** * @deprecated Use ConnectedAccountsListRequest instead. */ export type ConnectedAccountsListResponse = { connected_accounts: Array; }; export type ConnectedAccountsListRequest = SeamHttpRequest; export interface ConnectedAccountsListOptions { } export type ConnectedAccountsSyncParameters = { /** * ID of the connected account that you want to sync. */ connected_account_id: string; }; /** * @deprecated Use ConnectedAccountsSyncRequest instead. */ export type ConnectedAccountsSyncResponse = void; export type ConnectedAccountsSyncRequest = SeamHttpRequest; export interface ConnectedAccountsSyncOptions { } export type ConnectedAccountsUpdateParameters = { /** * List of accepted device capabilities that restrict the types of devices that can be connected through this connected account. Valid values are `lock`, `thermostat`, `noise_sensor`, and `access_control`. */ accepted_capabilities?: Array<'lock' | 'thermostat' | 'noise_sensor' | 'access_control' | 'camera'> | undefined; /** * Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). */ automatically_manage_new_devices?: boolean | undefined; /** * ID of the connected account that you want to update. */ connected_account_id: string; /** * Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](https://docs.seam.co/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata). */ custom_metadata?: Record | undefined; /** * The customer key to associate with this connected account. If provided, the connected account and all resources under the connected account will be moved to this customer. May only be provided if the connected account is not already associated with a customer. */ customer_key?: string | undefined; /** * Human-readable name for the connected account, shown in the dashboard. For example, `Booking from Airbnb House 1`. */ display_name?: string | undefined; }; /** * @deprecated Use ConnectedAccountsUpdateRequest instead. */ export type ConnectedAccountsUpdateResponse = void; export type ConnectedAccountsUpdateRequest = SeamHttpRequest; export interface ConnectedAccountsUpdateOptions { }