import { ClashProviderConfig, HttpNodeConfig, HttpsNodeConfig, Hysteria2NodeConfig, ShadowsocksNodeConfig, ShadowsocksrNodeConfig, SnellNodeConfig, SubscriptionUserinfo, TrojanNodeConfig, TuicNodeConfig, VlessNodeConfig, VmessNodeConfig, Socks5NodeConfig } from '../types';
import Provider from './Provider';
import { GetNodeListFunction, GetSubscriptionUserInfoFunction } from './types';
type SupportConfigTypes = ShadowsocksNodeConfig | VmessNodeConfig | VlessNodeConfig | HttpsNodeConfig | HttpNodeConfig | ShadowsocksrNodeConfig | SnellNodeConfig | TrojanNodeConfig | TuicNodeConfig | Hysteria2NodeConfig | Socks5NodeConfig;
export default class ClashProvider extends Provider {
    #private;
    readonly udpRelay?: boolean;
    readonly tls13?: boolean;
    constructor(name: string, config: ClashProviderConfig);
    get url(): string;
    getSubscriptionUserInfo: GetSubscriptionUserInfoFunction;
    getNodeList: GetNodeListFunction;
}
export declare const getClashSubscription: ({ url, udpRelay, tls13, requestUserAgent, }: {
    url: string;
    udpRelay?: boolean | undefined;
    tls13?: boolean | undefined;
    requestUserAgent?: string | undefined;
}) => Promise<{
    readonly nodeList: Array<SupportConfigTypes>;
    readonly subscriptionUserinfo?: SubscriptionUserinfo;
}>;
export declare const parseClashConfig: (proxyList: Array<any>, udpRelay?: boolean, tls13?: boolean) => Array<SupportConfigTypes>;
export {};
