image-asset-manager
Version:
A comprehensive image asset management tool for frontend projects
94 lines • 3.18 kB
TypeScript
declare global {
interface Window {
setTimeout: (callback: () => void, delay: number) => NodeJS.Timeout;
setInterval: (callback: () => void, delay: number) => NodeJS.Timeout;
clearTimeout: (id: NodeJS.Timeout) => void;
clearInterval: (id: NodeJS.Timeout) => void;
}
class WebSocket {
static readonly CONNECTING: number;
static readonly OPEN: number;
static readonly CLOSING: number;
static readonly CLOSED: number;
readonly CONNECTING: number;
readonly OPEN: number;
readonly CLOSING: number;
readonly CLOSED: number;
readonly readyState: number;
onopen: ((event: Event) => void) | null;
onclose: ((event: CloseEvent) => void) | null;
onerror: ((event: Event) => void) | null;
onmessage: ((event: MessageEvent) => void) | null;
constructor(url: string);
send(data: string): void;
close(code?: number, reason?: string): void;
}
interface MessageEvent {
data: string;
}
interface CloseEvent {
code: number;
reason: string;
wasClean: boolean;
}
}
export interface WebSocketMessage {
type: string;
data: any;
timestamp: number;
}
export interface WebSocketClientOptions {
url: string;
reconnectInterval?: number;
maxReconnectAttempts?: number;
pingInterval?: number;
}
export interface WebSocketEventHandlers {
onConnect?: () => void;
onDisconnect?: () => void;
onMessage?: (message: WebSocketMessage) => void;
onError?: (error: Event) => void;
onFileChange?: (data: any) => void;
onStatsUpdate?: (data: any) => void;
onDataUpdated?: (data: any) => void;
}
export declare class WebSocketClient {
private ws;
private options;
private handlers;
private reconnectAttempts;
private reconnectTimer;
private pingTimer;
private isConnected;
private isReconnecting;
constructor(options: WebSocketClientOptions);
connect(): void;
disconnect(): void;
private setupEventHandlers;
private handleMessage;
private scheduleReconnect;
private startPing;
private clearTimers;
send(type: string, data: any): void;
subscribe(events: string[]): void;
requestData(type: string, params?: any): void;
requestImages(page?: number, limit?: number, filters?: {}): void;
requestStats(): void;
requestDuplicates(): void;
on(event: keyof WebSocketEventHandlers, handler: Function): void;
off(event: keyof WebSocketEventHandlers): void;
isConnectedStatus(): boolean;
getReconnectAttempts(): number;
getReadyState(): number;
}
export declare function createWebSocketClient(port?: number, handlers?: WebSocketEventHandlers): WebSocketClient;
export declare function useWebSocketClient(port?: number): {
client: WebSocketClient;
connect: () => void;
disconnect: () => void;
send: (type: string, data: any) => void;
subscribe: (events: string[]) => void;
isConnected: () => boolean;
on: (event: keyof WebSocketEventHandlers, handler: Function) => void;
};
//# sourceMappingURL=WebSocketClient.d.ts.map