import { ShadowsocksNodeConfig, ShadowsocksSubscribeProviderConfig, SubscriptionUserinfo } from '../types';
import Provider from './Provider';
import { DefaultProviderRequestHeaders, GetNodeListFunction, GetNodeListV2Function, GetSubscriptionUserInfoFunction } from './types';
export default class ShadowsocksSubscribeProvider extends Provider {
    #private;
    readonly udpRelay?: boolean;
    constructor(name: string, config: ShadowsocksSubscribeProviderConfig);
    get url(): string;
    getSubscriptionUserInfo: GetSubscriptionUserInfoFunction;
    getNodeList: GetNodeListFunction;
    getNodeListV2: GetNodeListV2Function;
}
/**
 * @see https://shadowsocks.org/en/spec/SIP002-URI-Scheme.html
 */
export declare const getShadowsocksSubscription: (url: string, requestHeaders: DefaultProviderRequestHeaders, cacheKey: string, udpRelay?: boolean) => Promise<{
    readonly nodeList: Array<ShadowsocksNodeConfig>;
    readonly subscriptionUserInfo?: SubscriptionUserinfo;
}>;
