@herbertgao/surgio
Version:
Generating rules for Surge, Clash, Quantumult like a PRO
89 lines (88 loc) • 4.34 kB
TypeScript
import { Promisable } from 'type-fest';
import { BlackSSLProviderConfig, ClashProviderConfig, CommandConfigBeforeNormalize, CustomProviderConfig, PossibleProviderConfigType, ShadowsocksJsonSubscribeProviderConfig, ShadowsocksrSubscribeProviderConfig, ShadowsocksSubscribeProviderConfig, SsdProviderConfig, TrojanProviderConfig, V2rayNSubscribeProviderConfig } from './types';
export declare const defineSurgioConfig: (config: CommandConfigBeforeNormalize) => {
artifacts: {
name: string;
template: string;
provider: string;
templateType?: "default" | "json" | undefined;
extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
categories?: string[] | undefined;
combineProviders?: string[] | undefined;
customParams?: Record<string, any> | undefined;
customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
destDir?: string | undefined;
downloadUrl?: string | undefined;
templateString?: string | undefined;
subscriptionUserInfoProvider?: string | undefined;
}[];
customParams?: Record<string, any> | undefined;
customFilters?: Record<string, ((nodeConfig: import("./types").PossibleNodeConfigType) => boolean) | {
readonly filter: <T extends import("./types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
readonly supportSort: true;
}> | undefined;
resolveHostname?: boolean | undefined;
surgeConfig?: {
resolveHostname?: boolean | undefined;
vmessAEAD?: boolean | undefined;
} | undefined;
surfboardConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
quantumultXConfig?: {
vmessAEAD?: boolean | undefined;
} | undefined;
clashConfig?: {
enableTuic?: boolean | undefined;
enableShadowTls?: boolean | undefined;
enableHysteria2?: boolean | undefined;
enableVless?: boolean | undefined;
clashCore?: "clash" | "clash.meta" | "stash" | undefined;
} | undefined;
binPath?: {
shadowsocksr: string;
} | undefined;
remoteSnippets?: {
name: string;
url: string;
surgioSnippet?: boolean | undefined;
}[] | undefined;
urlBase?: string | undefined;
upload?: {
bucket: string;
accessKeyId: string;
accessKeySecret: string;
endpoint?: string | undefined;
prefix?: string | undefined;
region?: string | undefined;
} | undefined;
flags?: Record<string, string | RegExp | (string | RegExp)[]> | undefined;
gateway?: {
accessToken?: string | undefined;
viewerToken?: string | undefined;
auth?: boolean | undefined;
cookieMaxAge?: number | undefined;
useCacheOnError?: boolean | undefined;
passRequestUserAgent?: boolean | undefined;
} | undefined;
checkHostname?: boolean | undefined;
proxyTestUrl?: string | undefined;
proxyTestInterval?: number | undefined;
internetTestUrl?: string | undefined;
internetTestInterval?: number | undefined;
analytics?: boolean | undefined;
cache?: {
type?: "default" | "redis" | undefined;
redisUrl?: string | undefined;
} | undefined;
};
export type ProviderDefineFunction<T extends PossibleProviderConfigType, U = Omit<T, 'type'>> = (config: U) => T | Promisable<T>;
export declare const defineBlackSSLProvider: ProviderDefineFunction<BlackSSLProviderConfig>;
export declare const defineClashProvider: ProviderDefineFunction<ClashProviderConfig>;
export declare const defineCustomProvider: ProviderDefineFunction<CustomProviderConfig>;
export declare const defineShadowsocksJsonSubscribeProvider: ProviderDefineFunction<ShadowsocksJsonSubscribeProviderConfig>;
export declare const defineShadowsocksSubscribeProvider: ProviderDefineFunction<ShadowsocksSubscribeProviderConfig>;
export declare const defineShadowsocksrSubscribeProvider: ProviderDefineFunction<ShadowsocksrSubscribeProviderConfig>;
export declare const defineSsdProvider: ProviderDefineFunction<SsdProviderConfig>;
export declare const defineTrojanProvider: ProviderDefineFunction<TrojanProviderConfig>;
export declare const defineV2rayNSubscribeProvider: ProviderDefineFunction<V2rayNSubscribeProviderConfig>;