import { SubscriptionUserinfo, TrojanNodeConfig, TrojanProviderConfig } from '../types';
import Provider from './Provider';
import { GetNodeListFunction, GetSubscriptionUserInfoFunction } from './types';
export default class TrojanProvider extends Provider {
    #private;
    readonly udpRelay?: boolean;
    readonly tls13?: boolean;
    constructor(name: string, config: TrojanProviderConfig);
    get url(): string;
    getSubscriptionUserInfo: GetSubscriptionUserInfoFunction;
    getNodeList: GetNodeListFunction;
}
/**
 * @see https://github.com/trojan-gfw/trojan-url/blob/master/trojan-url.py
 */
export declare const getTrojanSubscription: ({ url, udpRelay, tls13, requestUserAgent, }: {
    url: string;
    udpRelay?: boolean | undefined;
    tls13?: boolean | undefined;
    requestUserAgent?: string | undefined;
}) => Promise<{
    readonly nodeList: Array<TrojanNodeConfig>;
    readonly subscriptionUserinfo?: SubscriptionUserinfo | undefined;
}>;
