2020-08-11 12:14:48 +08:00

118 lines
1.8 KiB
TypeScript

import { Proxy, ProxyGroup } from './Proxy'
import { Rule } from './Rule'
import * as API from '@lib/request'
/**
* clash config
* @see https://github.com/Dreamacro/clash#config
*/
export interface Config {
general?: {
/**
* http proxy port
*/
port?: number
/**
* socks proxy port
*/
socksPort?: number
/**
* redir proxy port
*/
redirPort?: number
/**
* proxy is allow lan
*/
allowLan?: boolean
/**
* controller port
*/
externalControllerPort?: string
/**
* controller address
*/
externalControllerAddr?: string
/**
* controller secret
*/
secret?: string
/**
* clash proxy mode
*/
mode?: string
/**
* clash tty log level
*/
logLevel?: string
}
proxy?: Proxy[]
proxyGroup?: ProxyGroup[]
rules?: Rule[]
}
export interface Data {
version?: string
general: {
/**
* http proxy port
*/
port?: number
/**
* socks proxy port
*/
socksPort?: number
/**
* mixed porxy port
*/
mixedPort?: number
/**
* redir proxy port
*/
redirPort?: number
/**
* proxy is allow lan
*/
allowLan: boolean
/**
* clash proxy mode
*/
mode: 'script' | 'rule' | 'direct' | 'global'
/**
* clash tty log level
*/
logLevel?: string
}
proxy?: API.Proxy[]
proxyGroup?: API.Group[]
proxyProviders?: API.Provider[]
rules?: API.Rule[]
proxyMap?: Map<string, API.Proxy>
}