import { Transport } from '../transport/index.js' import { Logger, LogLevel } from '../logger/index.js' import { Encoder } from '../encoder/index.js' import { Monitor, ReconnectStrategy } from '../monitor/index.js' import { Cable } from '../cable/index.js' import { Protocol } from '../protocol/index.js' import { Options } from '../action_cable/index.js' import { ExtendedOptions } from '../action_cable_ext/index.js' import { WebSocketAuthStrategy } from '../websocket/index.js' import { ActionCableConsumer } from '../action_cable_compat/index.js' export type ExtendedProtocolID = | 'actioncable-v1-ext-json' | 'actioncable-v1-ext-msgpack' | 'actioncable-v1-ext-protobuf' export type ProtocolID = | 'actioncable-v1-json' | 'actioncable-v1-msgpack' | 'actioncable-v1-protobuf' | ExtendedProtocolID export type TransportConfigurator = ( transport: Transport, params: { initial: boolean } ) => Promise export type TokenRefresher = (transport: Transport) => Promise type ProtocolOptions = T extends Protocol ? never : T extends ExtendedProtocolID ? ExtendedOptions : Options export interface CreateOptions

{ protocol: P subprotocol: string protocolOptions: ProtocolOptions

transport: Transport /* eslint-disable @typescript-eslint/no-explicit-any */ websocketImplementation: any websocketFormat: string websocketOptions: object websocketAuthStrategy: WebSocketAuthStrategy fallbacks: Transport[] encoder: Encoder logger: Logger logLevel: LogLevel monitor: Monitor | false pingInterval: number lazy: boolean transportConfigurator: TransportConfigurator tokenRefresher: TokenRefresher reconnectStrategy: ReconnectStrategy maxMissingPings: number maxReconnectAttempts: number historyTimestamp: number | false concurrentSubscribes: boolean performFailures: 'throw' | 'warn' | 'ignore' auth: { token?: string; param?: string } } export const DEFAULT_OPTIONS: Partial> export function createCable( url: string, opts?: Partial> ): Cable export function createCable( opts?: Partial> ): Cable export function createConsumer( url?: string, opts?: Partial> ): ActionCableConsumer export function createConsumer( opts?: Partial> ): ActionCableConsumer