rqbit/desktop/src/configuration.tsx
2023-12-07 14:11:12 +00:00

50 lines
1 KiB
TypeScript

type PathLike = string;
type Duration = string;
type SocketAddr = string;
interface RqbitDesktopConfigDht {
disable: boolean;
disable_persistence: boolean;
persistence_filename: PathLike;
}
interface RqbitDesktopConfigTcpListen {
disable: boolean;
min_port: number;
max_port: number;
}
interface RqbitDesktopConfigPersistence {
disable: boolean;
filename: PathLike;
}
interface RqbitDesktopConfigPeerOpts {
connect_timeout: Duration;
read_write_timeout: Duration;
}
interface RqbitDesktopConfigHttpApi {
disable: boolean;
listen_addr: SocketAddr;
read_only: boolean;
}
interface RqbitDesktopConfigUpnp {
disable: boolean;
}
export interface RqbitDesktopConfig {
default_download_location: PathLike;
dht: RqbitDesktopConfigDht;
tcp_listen: RqbitDesktopConfigTcpListen;
upnp: RqbitDesktopConfigUpnp;
persistence: RqbitDesktopConfigPersistence;
peer_opts: RqbitDesktopConfigPeerOpts;
http_api: RqbitDesktopConfigHttpApi;
}
export interface CurrentDesktopState {
config: RqbitDesktopConfig | null;
configured: boolean;
}