interface TProxy {
  protocol: 'http' | 'https' | 'socks5';
  host: string;
  port: number;
  auth?: {
    username: string;
    password: string;
  };
}

interface TServer {
  name: string;
  url: string;
  fileTypes?: string[];
  proxy?: string;
  auth?: {
    username: string;
    password: string;
  };
}

export interface IConfig {
  PORT: number;
  CACHE_DIR: string;
  REPOSITORIES: TServer[];
  DEFAULT_PATH: string;
  LOG_REQUESTS?: boolean;
  IGNORE_FILES?: string[];
  VALID_FILE_TYPES?: string[];
  PROXIES: Record<string, TProxy>;
}