import { PresetKeys, RateLimits } from "./rate-limits.mjs"; import { ConnectionRateLimits } from "../mixins/ratelimiters/connection.mjs"; import { Duplex } from "node:stream"; //#region src/config/config.d.ts interface DuplexTransportConfiguration { type: "duplex"; stream: () => Duplex; /** * Whether this stream is already set up (user logged in and * capabilities enabled). Defaults to false. */ preSetup?: boolean; } interface TcpTransportConfiguration { type?: "tcp"; secure: boolean; host: string; port: number; } type BasicTcpTransportConfiguration = Omit; interface WebSocketTransportConfiguration { type: "websocket"; url: string; } interface PresetWebSocketTransportConfiguration { type: "websocket"; } type TransportConfiguration = DuplexTransportConfiguration | TcpTransportConfiguration | BasicTcpTransportConfiguration | WebSocketTransportConfiguration | PresetWebSocketTransportConfiguration; type CustomRateLimitsConfig = RateLimits; type RateLimitsConfig = PresetKeys | CustomRateLimitsConfig; interface ClientConfiguration { /** * lowercase twitch login name */ username?: string; /** * Optional password. If unset no PASS is sent to the server. * * If set, this must begin with "oauth:" */ password?: string; /** * Can be disabled to lower the load on the bot by not requesting useless membership messages. * * Disabled by default. */ requestMembershipCapability?: boolean; connection?: TransportConfiguration; /** * Maximum number of channels the client will allow one connection to be joined to. 90 by default. */ maxChannelCountPerConnection?: number; rateLimits?: RateLimitsConfig; connectionRateLimits?: ConnectionRateLimits; installDefaultMixins?: boolean; } //#endregion export { BasicTcpTransportConfiguration, ClientConfiguration, CustomRateLimitsConfig, DuplexTransportConfiguration, PresetWebSocketTransportConfiguration, RateLimitsConfig, TcpTransportConfiguration, TransportConfiguration, WebSocketTransportConfiguration }; //# sourceMappingURL=config.d.mts.map