import { IActivity, IActivityInput, Activity, ActivityInput } from './activity.mjs'; import '../models/channel-id.mjs'; import '../models/account.mjs'; import '../models/membership-source.mjs'; import '../models/membership-source-types.mjs'; import '../models/membership-types.mjs'; import '../models/role.mjs'; import '../models/conversation/conversation-reference.mjs'; import '../models/entity/index.mjs'; import '../models/entity/ai-message-entity.mjs'; import '../models/entity/message-entity.mjs'; import '../models/entity/citation-entity.mjs'; import '../models/entity/client-info-entity.mjs'; import '../models/entity/mention-entity.mjs'; import '../models/entity/product-info-entity.mjs'; import '../models/entity/quoted-reply-entity.mjs'; import '../models/entity/sensitive-usage-entity.mjs'; import '../models/entity/stream-info-entity.mjs'; import '../models/entity/targeted-message-info-entity.mjs'; import '../models/channel-data/index.mjs'; import '../models/meeting/meeting-info.mjs'; import '../models/meeting/meeting-details.mjs'; import '../models/channel-data/app-info.mjs'; import '../models/channel-data/channel-info.mjs'; import '../models/channel-data/feedback-loop.mjs'; import '../models/channel-data/notification-info.mjs'; import '../models/channel-data/on-behalf-of.mjs'; import '../models/channel-data/settings.mjs'; import '../models/channel-data/team-info.mjs'; import '../models/channel-data/tenant-info.mjs'; interface ITypingActivity extends IActivity<'typing'> { /** * The text content of the message. */ text?: string; } /** * OUTBOUND typing activity — the typing indicator the app SENDS. * * All server-populated base fields optional (via {@link IActivityInput}) and the * typing-specific fields optional too, so both a plain `{ type: 'typing' }` literal * and a {@link TypingActivityInput} builder instance are assignable. The typing fields are * copied here instead of derived from {@link ITypingActivity}, keeping the outbound input * shape independent from the inbound activity interface. Use {@link TypingActivityInputOptions} * to include unmodeled extension fields when constructing a {@link TypingActivityInput}. */ interface ITypingActivityInput extends IActivityInput<'typing'> { /** * Text used by streaming updates. Ordinary typing indicators can omit this. */ text?: string; } /** * Constructor fields for {@link TypingActivityInput}. * * This accepts modeled outbound typing fields plus channel/service extension fields that * should serialize at the top level of the outbound activity payload. The constructor owns * the `type` discriminator; set typing text with the `text` field or * {@link TypingActivityInput.withText}. */ type TypingActivityInputOptions = Omit, 'type'> & Record; /** * Builder for outbound typing activities. */ declare class TypingActivityInput extends ActivityInput<'typing'> implements ITypingActivityInput { /** * Text used by streaming updates. Ordinary typing indicators can omit this. */ text?: string; /** * Create an outbound typing activity input. * @param value - Initial modeled input fields and unmodeled extension fields to serialize. */ constructor(value?: TypingActivityInputOptions); /** * Copy outbound-safe fields from a typing-like activity input. * @param activity - Typing input to copy. */ static from(activity: ITypingActivity): TypingActivityInput; static from(activity: ITypingActivityInput): TypingActivityInput; static from(activity: ITypingActivity | ITypingActivityInput): TypingActivityInput; /** * Set the streaming update text. * @param value - Streaming update text. */ withText(value: string): this; /** * Append streaming update text. * @param text - Streaming update text to append. */ addText(text: string): this; /** * Add stream metadata to this typing update. * @param sequence - Sequence number of the stream chunk. */ addStreamUpdate(sequence?: number): this; } declare class TypingActivity extends Activity<'typing'> implements ITypingActivity { /** * The text content of the message. */ text?: string; constructor(value?: Omit, 'type'>); /** * initialize from interface */ static from(activity: ITypingActivity): TypingActivity; /** * convert to interface */ toInterface(): ITypingActivity; /** * copy to a new instance */ clone(options?: Omit, 'type'>): TypingActivity; /** * The text content of the message. */ withText(value: string): this; /** * Append text */ addText(text: string): this; /** * Add stream informative update * @param id the stream id * @param sequence the sequence number (index) of the chunk */ addStreamUpdate(sequence?: number): this; } export { type ITypingActivity, type ITypingActivityInput, TypingActivity, TypingActivityInput, type TypingActivityInputOptions };