import type { IRouteConfig } from '@push.rocks/smartproxy'; /** * A stored remote ingress edge registration. */ export interface IRemoteIngress { id: string; name: string; secret: string; listenPorts: number[]; enabled: boolean; tags?: string[]; createdAt: number; updatedAt: number; /** Effective ports derived from route configs — only present in API responses. */ effectiveListenPorts?: number[]; } /** * Runtime status of a remote ingress edge. */ export interface IRemoteIngressStatus { edgeId: string; connected: boolean; publicIp: string | null; activeTunnels: number; lastHeartbeat: number | null; connectedAt: number | null; } /** * Route-level remote ingress configuration. * When attached to a route, signals that traffic for this route * should be accepted from remote edge nodes. */ export interface IRouteRemoteIngress { /** Whether this route receives traffic from edge nodes */ enabled: boolean; /** Optional filter: only edges whose id or tags match get this route's ports. * When absent, the route applies to all edges. */ edgeFilter?: string[]; } /** * Extended route config used within dcrouter. * Adds the optional `remoteIngress` property to SmartProxy's IRouteConfig. * SmartProxy ignores unknown properties at runtime. */ export type IDcRouterRouteConfig = IRouteConfig & { remoteIngress?: IRouteRemoteIngress; };