import * as plugins from '../plugins.js'; import type * as authInterfaces from '../data/auth.js'; import type { IMergedRoute, IRouteWarning } from '../data/route-management.js'; import type { IRouteConfig } from '@push.rocks/smartproxy'; // ============================================================================ // Route Management Endpoints // ============================================================================ /** * Get all merged routes (hardcoded + programmatic) with warnings. */ export interface IReq_GetMergedRoutes extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_GetMergedRoutes > { method: 'getMergedRoutes'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; }; response: { routes: IMergedRoute[]; warnings: IRouteWarning[]; }; } /** * Create a new programmatic route. */ export interface IReq_CreateRoute extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateRoute > { method: 'createRoute'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; route: IRouteConfig; enabled?: boolean; }; response: { success: boolean; storedRouteId?: string; message?: string; }; } /** * Update a programmatic route. */ export interface IReq_UpdateRoute extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_UpdateRoute > { method: 'updateRoute'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; route?: Partial; enabled?: boolean; }; response: { success: boolean; message?: string; }; } /** * Delete a programmatic route. */ export interface IReq_DeleteRoute extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_DeleteRoute > { method: 'deleteRoute'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; }; response: { success: boolean; message?: string; }; } /** * Set an override on a hardcoded route (disable/enable by name). */ export interface IReq_SetRouteOverride extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_SetRouteOverride > { method: 'setRouteOverride'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; routeName: string; enabled: boolean; }; response: { success: boolean; message?: string; }; } /** * Remove an override from a hardcoded route (restore default behavior). */ export interface IReq_RemoveRouteOverride extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_RemoveRouteOverride > { method: 'removeRouteOverride'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; routeName: string; }; response: { success: boolean; message?: string; }; } /** * Toggle a programmatic route on/off by id. */ export interface IReq_ToggleRoute extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_ToggleRoute > { method: 'toggleRoute'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; enabled: boolean; }; response: { success: boolean; message?: string; }; }