@push.rocks/smartproxy
Version:
A powerful proxy package that effectively handles high traffic, with features such as SSL/TLS support, port proxying, WebSocket handling, dynamic routing with authentication options, and automatic ACME certificate management.
56 lines (55 loc) • 1.66 kB
TypeScript
import type { IDomainConfig, IPortProxySettings } from './classes.pp.interfaces.js';
/**
* Manages domain configurations and target selection
*/
export declare class DomainConfigManager {
private settings;
private domainTargetIndices;
constructor(settings: IPortProxySettings);
/**
* Updates the domain configurations
*/
updateDomainConfigs(newDomainConfigs: IDomainConfig[]): void;
/**
* Get all domain configurations
*/
getDomainConfigs(): IDomainConfig[];
/**
* Find domain config matching a server name
*/
findDomainConfig(serverName: string): IDomainConfig | undefined;
/**
* Find domain config for a specific port
*/
findDomainConfigForPort(port: number): IDomainConfig | undefined;
/**
* Check if a port is within any of the given ranges
*/
isPortInRanges(port: number, ranges: Array<{
from: number;
to: number;
}>): boolean;
/**
* Get target IP with round-robin support
*/
getTargetIP(domainConfig: IDomainConfig): string;
/**
* Checks if a domain should use NetworkProxy
*/
shouldUseNetworkProxy(domainConfig: IDomainConfig): boolean;
/**
* Gets the NetworkProxy port for a domain
*/
getNetworkProxyPort(domainConfig: IDomainConfig): number | undefined;
/**
* Get effective allowed and blocked IPs for a domain
*/
getEffectiveIPRules(domainConfig: IDomainConfig): {
allowedIPs: string[];
blockedIPs: string[];
};
/**
* Get connection timeout for a domain
*/
getConnectionTimeout(domainConfig?: IDomainConfig): number;
}