import { IImgSize, IPathTransformedImgInfo, IPluginNameType, ILogger, IPicGo } from '../types'; export declare const isUrl: (url: string) => boolean; /** * handle url encode */ export declare const handleUrlEncode: (urlStr: string) => string; /** * @param urlPath the url path need to be encoded safely * @returns the safely encoded url path * * for example: * * /a b/, /c d.jpg -> /a%20b/c%20d.jpg * * /a/b, /c#d.jpg -> /a/b/c%23d.jpg */ export declare const handleUrlPathSafeEncode: (...urlPathList: string[]) => string; export declare const getImageSize: (file: Buffer) => IImgSize; export declare const getFSFile: (filePath: string) => Promise; export declare const getURLFile: (url: string, ctx: IPicGo) => Promise; /** * detect the input string's type * for example * 1. @xxx/picgo-plugin-xxx -> scope * 2. picgo-plugin-xxx -> normal * 3. xxx -> simple * 4. not exists or is a path -> unknown * @param name */ export declare const getPluginNameType: (name: string) => IPluginNameType; /** * detect the input string is a simple plugin name or not * for example * 1. xxx -> true * 2. /Usr/xx/xxxx/picgo-plugin-xxx -> false * @param name pluginNameOrPath */ export declare const isSimpleName: (nameOrPath: string) => boolean; /** * streamline the full plugin name to a simple one * for example: * 1. picgo-plugin-xxx -> xxx * 2. @xxx/picgo-plugin-yyy -> yyy * @param name pluginFullName */ export declare const handleStreamlinePluginName: (name: string) => string; /** * complete plugin name to full name * for example: * 1. xxx -> picgo-plugin-xxx * 2. picgo-plugin-xxx -> picgo-plugin-xxx * @param name pluginSimpleName * @param scope pluginScope */ export declare const handleCompletePluginName: (name: string, scope?: string) => string; /** * handle install/uninstall/update plugin name or path * for example * 1. picgo-plugin-xxx -> picgo-plugin-xxx * 2. @xxx/picgo-plugin-xxx -> @xxx/picgo-plugin-xxx * 3. xxx -> picgo-plugin-xxx * 4. ./xxxx/picgo-plugin-xxx -> /absolutePath/.../xxxx/picgo-plugin-xxx * 5. /absolutePath/.../picgo-plugin-xxx -> /absolutePath/.../picgo-plugin-xxx * @param nameOrPath pluginName or pluginPath */ export declare const getProcessPluginName: (nameOrPath: string, logger?: ILogger | Console) => string; /** * get the normal plugin name * for example: * 1. picgo-plugin-xxx -> picgo-plugin-xxx * 2. @xxx/picgo-plugin-xxx -> @xxx/picgo-plugin-xxx * 3. ./xxxx/picgo-plugin-xxx -> picgo-plugin-xxx * 4. /absolutePath/.../picgo-plugin-xxx -> picgo-plugin-xxx * 5. an exception: [package.json's name] !== [folder name] * then use [package.json's name], usually match the scope package. * 6. if plugin name has version: picgo-plugin-xxx@x.x.x then remove the version * @param nameOrPath */ export declare const getNormalPluginName: (nameOrPath: string, logger?: ILogger | Console) => string; /** * handle transform the path to unix style * for example * 1. C:\\xxx\\xxx -> C:/xxx/xxx * 2. /xxx/xxx -> /xxx/xxx * @param path */ export declare const handleUnixStylePath: (pathStr: string) => string; /** * remove plugin version when register plugin name * 1. picgo-plugin-xxx@1.0.0 -> picgo-plugin-xxx * 2. @xxx/picgo-plugin-xxx@1.0.0 -> @xxx/picgo-plugin-xxx * @param nameOrPath * @param scope */ export declare const removePluginVersion: (nameOrPath: string, scope?: boolean) => string; /** * the config black item list which won't be setted * only can be got */ export declare const configBlackList: never[]; /** * check some config key is in blackList * @param key */ export declare const isConfigKeyInBlackList: (key: string) => boolean; /** * check the input config is valid * config must be object such as { xxx: 'xxx' } * && can't be array * @param config * @returns */ export declare const isInputConfigValid: (config: any) => boolean; export declare function safeParse(str: string): T | string; export declare const forceNumber: (num?: string | number) => number; export declare const isDev: () => boolean; export declare const isProd: () => boolean;