import { IncomingHttpHeaders } from 'http'; import { PossibleNodeConfigType, SubscriptionUserinfo } from '../types'; import BlackSSLProvider from './BlackSSLProvider'; import ClashProvider from './ClashProvider'; import CustomProvider from './CustomProvider'; import ShadowsocksJsonSubscribeProvider from './ShadowsocksJsonSubscribeProvider'; import ShadowsocksrSubscribeProvider from './ShadowsocksrSubscribeProvider'; import ShadowsocksSubscribeProvider from './ShadowsocksSubscribeProvider'; import SsdProvider from './SsdProvider'; import TrojanProvider from './TrojanProvider'; import V2rayNSubscribeProvider from './V2rayNSubscribeProvider'; export type PossibleProviderType = BlackSSLProvider | ShadowsocksJsonSubscribeProvider | ShadowsocksSubscribeProvider | CustomProvider | V2rayNSubscribeProvider | ShadowsocksrSubscribeProvider | ClashProvider | SsdProvider | TrojanProvider; export type DefaultProviderRequestHeaders = IncomingHttpHeaders; export type GetNodeListParams = Record & { requestUserAgent?: string; requestHeaders?: IncomingHttpHeaders; }; export type GetNodeListFunction = (params?: GetNodeListParams) => Promise>; export type GetSubscriptionUserInfoFunction = (params?: GetNodeListParams) => Promise; export type GetNodeListV2Result = { readonly nodeList: ReadonlyArray; readonly subscriptionUserInfo?: SubscriptionUserinfo; }; export type GetNodeListV2Function = (params?: GetNodeListParams) => Promise;