import { IActivity, Activity } from '../activity.js';
import { ChannelData } from '../../models/channel-data/index.js';
import '../../models/channel-id.js';
import '../../models/account.js';
import '../../models/membership-source.js';
import '../../models/membership-source-types.js';
import '../../models/membership-types.js';
import '../../models/role.js';
import '../../models/conversation/conversation-reference.js';
import '../../models/entity/index.js';
import '../../models/entity/ai-message-entity.js';
import '../../models/entity/message-entity.js';
import '../../models/entity/citation-entity.js';
import '../../models/entity/client-info-entity.js';
import '../../models/entity/mention-entity.js';
import '../../models/entity/product-info-entity.js';
import '../../models/entity/sensitive-usage-entity.js';
import '../../models/entity/stream-info-entity.js';
import '../../models/meeting/meeting-info.js';
import '../../models/meeting/meeting-details.js';
import '../../models/channel-data/channel-info.js';
import '../../models/channel-data/team-info.js';
import '../../models/channel-data/notification-info.js';
import '../../models/channel-data/tenant-info.js';
import '../../models/channel-data/feedback-loop.js';
import '../../models/channel-data/on-behalf-of.js';
import '../../models/channel-data/settings.js';

interface IMessageUpdateActivity extends IActivity<'messageUpdate'> {
    /**
     * The text content of the message.
     */
    text: string;
    /**
     * The text to speak.
     */
    speak?: string;
    /**
     * The text to display if the channel cannot render cards.
     */
    summary?: string;
    /**
     * The time at which the activity should be considered to be "expired" and should not be
     * presented to the recipient.
     */
    expiration?: Date;
    /**
     * A value that is associated with the activity.
     */
    value?: any;
    channelData: ChannelData & {
        eventType: 'undeleteMessage' | 'editMessage';
    };
}
declare class MessageUpdateActivity extends Activity<'messageUpdate'> implements IMessageUpdateActivity {
    /**
     * The text content of the message.
     */
    text: string;
    /**
     * The text to speak.
     */
    speak?: string;
    /**
     * The text to display if the channel cannot render cards.
     */
    summary?: string;
    /**
     * The time at which the activity should be considered to be "expired" and should not be
     * presented to the recipient.
     */
    expiration?: Date;
    /**
     * A value that is associated with the activity.
     */
    value?: any;
    channelData: ChannelData & {
        eventType: 'undeleteMessage' | 'editMessage';
    };
    constructor(eventType: 'undeleteMessage' | 'editMessage', value?: Omit<Partial<IMessageUpdateActivity>, 'type'>);
    /**
     * initialize from interface
     */
    static from(activity: IMessageUpdateActivity): MessageUpdateActivity;
    /**
     * convert to interface
     */
    toInterface(): IMessageUpdateActivity;
    /**
     * copy to a new instance
     */
    clone(options?: Omit<Partial<IMessageUpdateActivity>, 'type'>): MessageUpdateActivity;
    /**
     * The text content of the message.
     */
    withText(value: string): this;
    /**
     * The text to speak.
     */
    withSpeak(value: string): this;
    /**
     * The text to display if the channel cannot render cards.
     */
    withSummary(value: string): this;
    /**
     * The time at which the activity should be considered to be "expired" and should not be
     * presented to the recipient.
     */
    withExpiration(value: Date): this;
}

export { type IMessageUpdateActivity, MessageUpdateActivity };
