import type { HelixUser } from '@twurple/api';
import { DataObject } from '@twurple/common';
import { EventSubChannelHypeTrainContribution } from './common/EventSubChannelHypeTrainContribution';
import type { EventSubChannelHypeTrainType } from './common/EventSubChannelHypeTrainType';
import { EventSubChannelHypeTrainSharedParticipant } from './common/EventSubChannelHypeTrainSharedParticipant';
import { type EventSubChannelHypeTrainEndV2EventData } from './EventSubChannelHypeTrainEndV2Event.external';
/**
 * An EventSub event representing the end of a Hype train event.
 */
export declare class EventSubChannelHypeTrainEndV2Event extends DataObject<EventSubChannelHypeTrainEndV2EventData> {
    /**
     * The ID of the Hype Train.
     */
    get id(): string;
    /**
     * The ID of the broadcaster.
     */
    get broadcasterId(): string;
    /**
     * The name of the broadcaster.
     */
    get broadcasterName(): string;
    /**
     * The display name of the broadcaster.
     */
    get broadcasterDisplayName(): string;
    /**
     * Gets more information about the broadcaster.
     */
    getBroadcaster(): Promise<HelixUser>;
    /**
     * The type of the Hype Train.
     */
    get type(): EventSubChannelHypeTrainType;
    /**
     * The level the Hype Train started on.
     */
    get level(): number;
    /**
     * The total points already contributed to the Hype Train.
     */
    get total(): number;
    /**
     * The contributors with the most points contributed.
     */
    get topContributors(): EventSubChannelHypeTrainContribution[];
    /**
     * Indicates if the Hype Train is shared.
     *
     * When `true`, {@link EventSubChannelHypeTrainEndV2Event#sharedTrainParticipants} will contain the list of
     * broadcasters the train is shared with.
     */
    get isSharedTrain(): boolean;
    /**
     * The list of broadcasters in the shared Hype Train.
     *
     * Empty if {@link EventSubChannelHypeTrainEndV2Event#isSharedTrain} is `false`.
     */
    get sharedTrainParticipants(): EventSubChannelHypeTrainSharedParticipant[];
    /**
     * The time when the Hype Train started.
     */
    get startDate(): Date;
    /**
     * The time when the Hype Train ended.
     */
    get endDate(): Date;
    /**
     * The time when the Hype Train cooldown ends.
     */
    get cooldownEndDate(): Date;
}
//# sourceMappingURL=EventSubChannelHypeTrainEndV2Event.d.ts.map