import { ActivityParams, AgenticIdentity, Client, ConversationReference, DeprecatedInputActivity, SentActivity } from '@microsoft/teams.api';
import { ILogger } from '@microsoft/teams.common';
import { ActivitySenderOptions, IStreamer, IActivitySender, StreamOptions } from './types';
/**
 * Creates an API client for a sender operation, optionally scoped to an agentic
 * identity.
 */
export type ActivitySenderClientFactory = (serviceUrl: string, agenticIdentity?: AgenticIdentity) => Client;
/**
 * Handles sending activities to the Bot Framework
 * Separate from transport concerns (HTTP, WebSocket, etc.)
 */
export declare class ActivitySender implements IActivitySender {
    private logger;
    private createClient;
    constructor(logger: ILogger, createClient: ActivitySenderClientFactory);
    /**
     * @deprecated Use MessageActivityInput or TypingActivityInput instead.
     */
    send(activity: DeprecatedInputActivity, ref: ConversationReference, options?: ActivitySenderOptions): Promise<SentActivity>;
    send(activity: ActivityParams, ref: ConversationReference, options?: ActivitySenderOptions): Promise<SentActivity>;
    send(activity: ActivityParams | DeprecatedInputActivity, ref: ConversationReference, options?: ActivitySenderOptions): Promise<SentActivity>;
    createStream(ref: ConversationReference, options?: StreamOptions): IStreamer;
    private dispatch;
}
