import { APIResource } from "../core/resource.js";
import * as EventsAPI from "./events.js";
import { APIPromise } from "../core/api-promise.js";
import { RequestOptions } from "../internal/request-options.js";
export declare class Stream extends APIResource {
    /**
     * Setup streamed (WebSocket) connection
     */
    events(query?: StreamEventsParams | null | undefined, options?: RequestOptions): APIPromise<StreamEventsResponse>;
}
export interface StreamEventsResponse {
    channel?: string;
    data?: Array<EventsAPI.Event>;
    pusherKey?: string;
    pusherOptions?: StreamEventsResponse.PusherOptions;
    success?: boolean;
    user?: string;
}
export declare namespace StreamEventsResponse {
    interface PusherOptions {
        channelAuthorization?: PusherOptions.ChannelAuthorization;
        cluster?: string;
        httpHost?: string;
        httpPort?: number;
        httpsPort?: number;
        wsHost?: string;
        wsPort?: number;
        wssPort?: number;
    }
    namespace PusherOptions {
        interface ChannelAuthorization {
            endpoint?: string;
            headers?: {
                [key: string]: string;
            };
        }
    }
}
export interface StreamEventsParams {
    /**
     * An eventID to stream events for
     */
    eventID?: string;
    /**
     * The feed you would like to subscribe to
     */
    feed?: string;
    /**
     * A leagueID to stream events for
     */
    leagueID?: string;
}
export declare namespace Stream {
    export { type StreamEventsResponse as StreamEventsResponse, type StreamEventsParams as StreamEventsParams };
}
//# sourceMappingURL=stream.d.ts.map