import type { ChatBot } from './ChatBot';
import { Base } from './Base';
import { BaseUser } from './BaseUser';
import { BaseClip } from './BaseClip';
import type { EventSubConnection } from '../enums';
/**
 * The base class for a stream.
 */
export declare class BaseStream<T extends EventSubConnection> extends Base<T> {
    /**
     * The id of the stream.
     */
    readonly id: string;
    /**
     * The type of the stream.
     */
    readonly type: string;
    /**
     * The broadcaster of the stream.
     */
    readonly broadcaster: BaseUser<T>;
    /**
     * The base data of the stream.
     */
    private data;
    /**
     * Creates a new instance of the base stream.
     * @param chatbot The current instance of the chatbot.
     * @param data The base data of the stream.
     */
    constructor(chatbot: ChatBot<T>, data: BaseStreamData);
    /**
     * Creates a new clip of the stream.
     * @param delay Whether to delay few seconds the clip or not.
     */
    createClip(delay?: boolean): Promise<BaseClip<T>>;
    /**
     * Fetches the current stream from the API.
     * @returns The current stream or null if the stream is offline.
     */
    fetch(): Promise<import("./Stream").Stream<T> | null>;
    /**
     * When the stream has started. Returns a JavaScript Date object.
     */
    get startedAt(): Date;
}
/**
 * The data of the base stream.
 */
export interface BaseStreamData {
    /**
     * The id of the stream.
     */
    id: string;
    /**
     * The type of the stream.
     */
    type: string;
    /**
     * When the stream has started.
     */
    started_at: string;
    /**
     * The id of the user who is streaming.
     */
    user_id: string;
    /**
     * The name of the user who is streaming.
     */
    user_name: string;
    /**
     * The login of the user who is streaming.
     */
    user_login: string;
}
