import { CustomProviderConfig, VmessNodeConfig } from '../types';
import Provider from './Provider';
import { GetNodeListFunction, GetNodeListParams, GetNodeListV2Function } from './types';
export default class CustomProvider extends Provider {
    readonly nodeList: unknown[] | ((params: GetNodeListParams) => Promise<unknown[]>);
    readonly underlyingProxy?: string;
    constructor(name: string, config: CustomProviderConfig);
    getNodeList: GetNodeListFunction;
    getNodeListV2: GetNodeListV2Function;
    prepareVmessNodeConfig(node: VmessNodeConfig): VmessNodeConfig;
}
