import { DataObject } from '@donation-alerts/common';
/** @internal */
export interface DonationAlertsCustomAlertData {
    id: number;
    external_id: string | null;
    header: string | null;
    message: string | null;
    image_url: string | null;
    sound_url: string | null;
    is_shown: 0 | 1;
    created_at: string;
    shown_at: string | null;
}
/**
 * Represents a Donation Alerts custom alert as a plain JavaScript object.
 */
export interface DonationAlertsCustomAlertJson {
    id: number;
    externalId: string | null;
    header: string | null;
    message: string | null;
    imageUrl: string | null;
    soundUrl: string | null;
    isShown: boolean;
    creationDate: Date;
    showDate: Date | null;
}
/**
 * Represents a Donation Alerts custom alert object.
 *
 * @remarks
 * A custom alert is a user-defined alert, which can include custom headers, messages, images, and sounds.
 * These alerts are shown in the streamer's widget when triggered.
 */
export declare class DonationAlertsCustomAlert extends DataObject<DonationAlertsCustomAlertData, DonationAlertsCustomAlertJson> {
    /**
     * The unique custom alert identifier.
     */
    get id(): number;
    /**
     * The developer-provided unique identifier for the alert, or `null` if none was set.
     *
     * @remarks
     * This value can be used to track or manage custom alerts within external systems.
     */
    get externalId(): string | null;
    /**
     * The header text of the custom alert, or `null` if no header was set.
     */
    get header(): string | null;
    /**
     * The message text of the custom alert, or `null` if no message was set.
     */
    get message(): string | null;
    /**
     * The URL of the image to be displayed with the custom alert, or `null` if no URL was set.
     */
    get imageUrl(): string | null;
    /**
     * The URL of the sound file to be played when the custom alert is shown, or `null` if no URL was set.
     */
    get soundUrl(): string | null;
    /**
     * Indicates whether the alert has been shown in the streamer's widget.
     */
    get isShown(): boolean;
    /**
     * The date and time when the custom alert was created.
     */
    get creationDate(): Date;
    /**
     * The date and time when the custom alert was shown, or `null` if the alert has not yet been shown.
     */
    get showDate(): Date | null;
    toJSON(): DonationAlertsCustomAlertJson;
}
//# sourceMappingURL=donation-alerts-custom-alert.d.ts.map