export type { CommandConfigBeforeNormalize as SurgioConfig } from './types';
export * from './configurables';
export { default as httpClient } from './utils/http-client';
export { unifiedCache as cache } from './utils/cache';
export { extendOutbounds, createExtendFunction, combineExtendFunctions, } from './generator';
export declare const utils: {
    readonly isHeroku: () => boolean;
    readonly isNow: () => boolean;
    readonly isVercel: () => boolean;
    readonly isGitHubActions: () => boolean;
    readonly isGitLabCI: () => boolean;
    readonly isRailway: () => boolean;
    readonly isNetlify: () => boolean;
    readonly isAWS: () => boolean;
    readonly isFlyIO: () => boolean;
    readonly isAWSLambda: () => boolean;
    readonly isSurgeIOS: (ua: string | undefined, version?: string | undefined) => boolean;
    readonly isSurgeMac: (ua: string | undefined, version?: string | undefined) => boolean;
    readonly isClash: (ua: string | undefined, version?: string | undefined) => boolean;
    readonly isClashVerge: (ua: string | undefined, version?: string | undefined) => boolean;
    readonly isClashMetaForAndroid: (ua: string | undefined, version?: string | undefined) => boolean;
    readonly isStash: (ua: string | undefined, version?: string | undefined) => boolean;
    readonly isQuantumultX: (ua: string | undefined, version?: string | undefined) => boolean;
    readonly isShadowrocket: (ua: string | undefined, version?: string | undefined) => boolean;
    readonly isLoon: (ua: string | undefined, version?: string | undefined) => boolean;
    readonly validateFilter: (filter: unknown) => boolean;
    readonly applyFilter: <T extends import("./types").PossibleNodeConfigType>(nodeList: readonly T[], filter?: ((nodeConfig: import("./types").PossibleNodeConfigType) => boolean) | {
        readonly filter: <T_1 extends import("./types").PossibleNodeConfigType>(nodeList: readonly T_1[]) => readonly T_1[];
        readonly supportSort: true;
    } | undefined) => readonly T[];
    readonly mergeFilters: (filters: ((nodeConfig: import("./types").PossibleNodeConfigType) => boolean)[], isStrict?: boolean | undefined) => (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly useKeywords: (keywords: string[], isStrict?: boolean | undefined) => (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly discardKeywords: (keywords: string[], isStrict?: boolean | undefined) => (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly useRegexp: (regexp: RegExp) => (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly matchGlob: (str: string, glob: string) => boolean;
    readonly useGlob: (glob: string) => (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly discardGlob: (glob: string) => (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly useProviders: (keywords: string[], isStrict?: boolean) => (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly discardProviders: (keywords: string[], isStrict?: boolean) => (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly useSortedKeywords: (keywords: string[]) => {
        readonly filter: <T_1 extends import("./types").PossibleNodeConfigType>(nodeList: readonly T_1[]) => readonly T_1[];
        readonly supportSort: true;
    };
    readonly mergeSortedFilters: (filters: ((nodeConfig: import("./types").PossibleNodeConfigType) => boolean)[]) => {
        readonly filter: <T_1 extends import("./types").PossibleNodeConfigType>(nodeList: readonly T_1[]) => readonly T_1[];
        readonly supportSort: true;
    };
    readonly reverseFilter: (filter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean) => (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly mergeReversedFilters: (filters: ((nodeConfig: import("./types").PossibleNodeConfigType) => boolean)[], isStrict?: boolean | undefined) => (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly netflixFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly usFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly hkFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly japanFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly koreaFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly singaporeFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly taiwanFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly chinaBackFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly chinaOutFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly youtubePremiumFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly shadowsocksFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly shadowsocksrFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly vmessFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly v2rayFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly snellFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly tuicFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly httpFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly httpsFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly trojanFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly socks5Filter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly wireguardFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly hysteria2Filter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
    readonly vlessFilter: (nodeConfig: import("./types").PossibleNodeConfigType) => boolean;
};
export declare const categories: {
    readonly SNIPPET: "Snippet";
    readonly SURGE: "Surge";
    readonly QUANTUMULT_X: "Quantumult X";
    readonly QUANTUMULT_X_SERVER: "Quantumult X Server";
    readonly QUANTUMULT_X_FILTER: "Quantumult X Filter";
    readonly QUANTUMULT_X_REWRITE: "Quantumult X Rewrite";
    readonly CLASH: "Clash";
    readonly LOON: "Loon";
    readonly SURFBOARD: "Surfboard";
};
