import type { SingBoxFakeIP, SingBoxTailscaleEndpoint } from "./atomic" import type { SingBoxInbound } from "./atomic/inbounds" import type { SingBoxOutbound } from "./atomic/outbounds" import type { SingBoxDNSServer, SingBoxWireguardEndpoint } from "./constructed" export type SingBoxConfig = { log: { disabled?: boolean, level?: "trace" | "debug" | "info" | "warn" | "error" | "fatal" | "panic", output?: string, timestamp?: boolean }, dns: { servers?: any[], rules?: any[], final?: string, strategy?: "prefer_ipv4" | "prefer_ipv6" | "ipv4_only" | "ipv6_only", disable_cache?: boolean, disable_expire?: boolean, independent_cache?: boolean, cache_capacity?: number, reverse_mapping?: boolean, client_subnet?: string, fakeip?: SingBoxFakeIP }, ntp: { enabled: boolean, server?: string, server_port?: number, interval?: string }, certificate: { store?: string, certificate?: any[], certificate_path?: any[], certificate_directory_path?: any[] }, endpoints: (SingBoxWireguardEndpoint | SingBoxTailscaleEndpoint)[], inbounds: SingBoxInbound[], outbounds: SingBoxOutbound[], route: unknown, services: any, experimental: any }