/** * Sandbox mock client: stands in for VirtualSMSClient when VIRTUALSMS_SANDBOX * is active. No real network calls, no API key required. Returns realistic * FAKE data so an agent (or a registry scanner) can exercise every tool * end-to-end without touching production or spending real money. * * Structural contract: this class implements the same public method surface * as VirtualSMSClient (same names, params, return shapes) so tools.ts handlers * work unmodified against either. TypeScript structural typing does the rest. * It does NOT extend VirtualSMSClient (no real axios instance, no real base * URL requirement) to keep it fully offline. */ import type { IVirtualSMSClient, Service, Country, Price, CatalogCountry, Balance, Profile, TransactionsPage, Order, CancelResult, ProxyCatalogPoolType, ProxyListItem, ProxyPurchaseResult, ProxyRotateResult, ProxyUsage, ProxyUsageHistoryResult, ProxyTargetingResult, ProxyTestResult, ProxyLocationItem, ProxyEndpointResult, BrowserSessionResult, NavigateSessionResult, RentalPricingTier, RentalAvailabilityResult, RentalCatalogService, RentalPriceResult, Rental, CreateRentalResult, RentalActionResult, RetryOrderResult, NumberCheckResult } from '../client.js'; declare function sleep(ms: number): Promise; export declare class MockVirtualSMSClient implements IVirtualSMSClient { private readonly baseUrl; private readonly orders; private readonly rentals; private readonly proxies; private readonly sessions; private balanceUsd; private orderSeq; private rentalSeq; private proxySeq; private sessionSeq; constructor(baseUrl: string); requireApiKey(): void; getApiKey(): string | undefined; getBaseUrl(): string; listServices(): Promise; listCountries(): Promise; checkPrice(service: string, country: string): Promise; getCatalogCountries(_service: string): Promise; checkNumber(number: string): Promise; getBalance(): Promise; getProfile(): Promise; getTransactions(params?: { type?: string; from?: string; to?: string; limit?: number; offset?: number; }): Promise; createOrder(service: string, country: string): Promise; getOrder(orderId: string): Promise; swapNumber(orderId: string): Promise; cancelOrder(orderId: string): Promise; completeOrder(orderId: string): Promise; listOrders(status?: string): Promise; listProxyCatalog(): Promise; listProxies(): Promise; purchaseProxy(params: { pool_type: string; gb: number; country_code?: string; idempotency_key?: string; }): Promise; rotateProxy(proxyId: string, port?: number): Promise; getProxyUsage(proxyId: string): Promise; getProxyUsageHistory(proxyId: string, range?: '7d' | '30d'): Promise; setProxyTargeting(proxyId: string, params: { countryCode: string; cities?: string[]; asns?: number[]; }): Promise; testProxy(proxyId: string, params: { country: string; session?: 'rotating' | 'sticky'; protocol?: 'http' | 'socks5'; }): Promise; listProxyLocations(params: { poolType: 'residential' | 'mobile' | 'datacenter'; country: string; kind: 'cities' | 'states' | 'asns' | 'zipcodes'; }): Promise; generateProxyEndpoint(params: { proxyId: string; countryCode: string; targetBy?: 'country' | 'state' | 'city' | 'zip' | 'asn'; locationCode?: string; session?: 'rotating' | 'sticky'; stickyTtlMinutes?: number; count?: number; protocol?: 'HTTP' | 'SOCKS5'; format?: 'host:port:user:pass' | 'user:pass@host:port' | 'curl'; }): Promise; startManualRegistrationSession(params: { serviceName?: string; country?: string; deviceMode?: 'desktop' | 'mobile'; withProxy?: boolean; targetUrl?: string; orderId?: string; mode?: 'attach' | 'fresh'; }): Promise; prepBrowserSession(sessionId: string, preset: 'generic' | 'telegram', targetUrl?: string): Promise; stopBrowserSession(sessionId: string): Promise; navigateBrowserSession(sessionId: string, url: string): Promise; getBrowserSession(sessionId: string): Promise; listRentalPricing(): Promise; getRentalAvailability(params?: { country?: string; service?: string; type?: 'service' | 'full'; tier?: 'full_access' | 'platform'; }): Promise; listRentalServices(params: { countryCode: string; durationHours?: number; }): Promise; getRentalPrice(params: { service: string; countryCode: string; durationHours: number; }): Promise; createFullAccessRental(params: { country: string; rentalType: 'service' | 'full'; durationHours: number; service?: string; autoRenew?: boolean; }): Promise; createPlatformRental(params: { service: string; countryCode: string; durationHours: number; }): Promise; private createMockRental; listRentals(status?: string): Promise; getRental(rentalId: string): Promise; extendRental(rentalId: string, durationHours: number): Promise; cancelRental(rentalId: string): Promise; releaseRental(rentalId: string): Promise; retryOrder(orderId: string): Promise; } export declare function isSandboxEnabled(env: NodeJS.ProcessEnv, smitheryEnvironment?: string): boolean; export { sleep as _sandboxSleep }; //# sourceMappingURL=mock-http.d.ts.map