import type { PlatformNetwork } from '../network/platform-network.js'; import type { NetworkClient, NetworkResponse, NetworkRequestOptions } from '@sudobility/types'; export interface RecordedRequest { url: string; options: RequestInit; timestamp: number; } export interface MockResponseConfig { status?: number; statusText?: string; headers?: Record; body?: unknown; delay?: number; error?: Error; } export declare class MockPlatformNetwork implements PlatformNetwork { private online; private requests; private mockResponses; private defaultResponse; private networkStatusListeners; request(url: string, options?: RequestInit): Promise; get(url: string, options?: { headers?: Record; signal?: AbortSignal; }): Promise; post(url: string, body?: unknown, options?: { headers?: Record; signal?: AbortSignal; }): Promise; put(url: string, body?: unknown, options?: { headers?: Record; signal?: AbortSignal; }): Promise; delete(url: string, options?: { headers?: Record; signal?: AbortSignal; }): Promise; isOnline(): boolean; watchNetworkStatus(callback: (isOnline: boolean) => void): () => void; setOnline(online: boolean): void; setMockResponse(url: string, config: MockResponseConfig): void; setDefaultResponse(config: MockResponseConfig): void; clearMockResponse(url: string): void; clearAllMockResponses(): void; getRequests(): RecordedRequest[]; getRequestsByUrl(url: string): RecordedRequest[]; getLastRequest(): RecordedRequest | undefined; wasUrlCalled(url: string): boolean; getRequestCount(url: string): number; reset(): void; } export interface RecordedHttpRequest { method: string; url: string; body?: unknown; options?: Partial; timestamp: number; } export interface MockHttpResponse { data?: T; status?: number; statusText?: string; headers?: Record; ok?: boolean; error?: Error; delay?: number; } export declare class MockNetworkClient implements NetworkClient { private requests; private mockResponses; private defaultResponse; private latencyMs; private errorRate; private offline; request(url: string, options?: NetworkRequestOptions): Promise>; get(url: string, options?: Omit): Promise>; post(url: string, body?: unknown, options?: Omit): Promise>; put(url: string, body?: unknown, options?: Omit): Promise>; delete(url: string, options?: Omit): Promise>; setMockResponse(url: string, response: MockHttpResponse, method?: string): void; setDefaultResponse(response: MockHttpResponse): void; clearMockResponse(url: string, method?: string): void; clearAllMockResponses(): void; getRequests(): RecordedHttpRequest[]; getRequestsByMethod(method: string): RecordedHttpRequest[]; getRequestsByUrl(url: string): RecordedHttpRequest[]; getLastRequest(): RecordedHttpRequest | undefined; wasUrlCalled(url: string, method?: string): boolean; setLatency(ms: number): void; setErrorRate(rate: number): void; simulateOffline(): void; simulateOnline(): void; reset(): void; } //# sourceMappingURL=network.mock.d.ts.map