import type { HelixUser } from '@twurple/api';
import { DataObject } from '@twurple/common';
import { type EventSubAutoModMessagePart } from './common/EventSubAutoModMessage.external';
import { type EventSubAutoModMessageHoldReason } from './common/EventSubAutoModMessageHoldReason';
import { EventSubAutoModMessageAutoMod } from './common/EventSubAutoModMessageAutoMod';
import { EventSubAutoModMessageBlockedTerm } from './common/EventSubAutoModMessageBlockedTerm';
import { type EventSubAutoModMessageHoldV2EventData } from './EventSubAutoModMessageHoldV2Event.external';
/**
 * An EventSub event representing chat message being held by AutoMod in a channel.
 */
export declare class EventSubAutoModMessageHoldV2Event extends DataObject<EventSubAutoModMessageHoldV2EventData> {
    /**
     * The ID of the broadcaster in whose channel the message has been held by AutoMod.
     */
    get broadcasterId(): string;
    /**
     * The name of the broadcaster in whose channel the message has been held by AutoMod.
     */
    get broadcasterName(): string;
    /**
     * The display name of the broadcaster in whose channel the message has been held by AutoMod.
     */
    get broadcasterDisplayName(): string;
    /**
     * Gets more information about the broadcaster.
     */
    getBroadcaster(): Promise<HelixUser>;
    /**
     * The ID of the user whose message has been held by AutoMod.
     */
    get userId(): string;
    /**
     * The name of the user whose message has been held by AutoMod.
     */
    get userName(): string;
    /**
     * The display name of the user whose message has been held by AutoMod.
     */
    get userDisplayName(): string;
    /**
     * Gets more information about the user.
     */
    getUser(): Promise<HelixUser>;
    /**
     * The ID of the chat message held by AutoMod.
     */
    get messageId(): string;
    /**
     * The plain text of the message.
     */
    get messageText(): string;
    /**
     * The pre-parsed message parts.
     */
    get messageParts(): EventSubAutoModMessagePart[];
    /**
     * The reason why the message was caught.
     */
    get reason(): EventSubAutoModMessageHoldReason;
    /**
     * The AutoMod violation data if the message was caught by AutoMod.
     *
     * This is only relevant if {@link EventSubAutoModMessageHoldEvent#reason} is `automod`, otherwise it is `null`.
     */
    get autoMod(): EventSubAutoModMessageAutoMod | null;
    /**
     * The list of blocked terms caused the message to be caught.
     *
     * This is only relevant if {@link EventSubAutoModMessageHoldEvent#reason} is `blocked_term`, otherwise it is
     * `null`.
     */
    get blockedTerms(): EventSubAutoModMessageBlockedTerm[] | null;
    /**
     * The date of when AutoMod held the message.
     */
    get holdDate(): Date;
}
//# sourceMappingURL=EventSubAutoModMessageHoldV2Event.d.ts.map