import type { Activity, ChannelAccount, ConversationParameters } from '@microsoft/agents-activity'; import { type CreateConversationOptions } from './createConversationOptions'; import type { ConversationClaims } from './conversation'; /** * Fluent builder for `CreateConversationOptions`. * * @example * ```typescript * const opts = CreateConversationOptionsBuilder * .create('my-client-id', 'msteams') * .withUser('user-aad-id') * .withTenantId('tenant-id') * .build() * ``` */ export declare class CreateConversationOptionsBuilder { private readonly _claims; private readonly _channelId; private readonly _serviceUrl; private _scope; private _storeConversation; private _parameters; private _activity; private constructor(); /** * Creates a new builder from an agent client ID string. * @param agentClientId The agent's client (app) ID. * @param channelId The target channel (e.g. `'msteams'`). * @param serviceUrl Optional service URL override. */ static create(agentClientId: string, channelId: string, serviceUrl?: string, parameters?: Partial): CreateConversationOptionsBuilder; /** * Creates a new builder from an existing claims object (e.g. from a stored `Conversation`). * @param claims JWT claims — `aud` must be the agent's client ID. * @param channelId The target channel (e.g. `'msteams'`). * @param serviceUrl Optional service URL override. */ static create(claims: ConversationClaims, channelId: string, serviceUrl?: string, parameters?: Partial): CreateConversationOptionsBuilder; /** Adds a member (the target user) to `parameters.members`. */ withUser(userId: string, userName?: string): this; withUser(account: ChannelAccount): this; /** Sets `parameters.activity`. Defaults `activity.type` to `'message'` if not provided. */ withActivity(activity: Partial): this; /** Merges additional channel-specific data into `parameters.channelData`. */ withChannelData(data: object): this; /** * Sets `parameters.tenantId`. * On `msteams` channels, also sets `channelData.tenant.id`. */ withTenantId(tenantId: string): this; /** * Sets `parameters.isGroup = true` and `channelData.channel.id`. * Only has effect on `msteams` channels. */ withTeamsChannelId(teamsChannelId: string): this; /** Sets `parameters.topicName`. */ withTopicName(name: string): this; /** Sets `parameters.isGroup`. */ isGroup(value: boolean): this; /** Overrides the default `AzureBotScope` OAuth scope. */ withScope(scope: string): this; /** Controls whether the resulting conversation is stored after creation. */ storeConversation(value: boolean): this; /** * Builds and returns `CreateConversationOptions`. * @throws if no members were added via `withUser()`. */ build(): CreateConversationOptions; }