@klastra/ksync
Version:
Real-time sync engine for modern applications with 300k+ ops/sec performance
51 lines • 1.95 kB
TypeScript
import React, { ReactNode } from 'react';
import { KSync } from '../core.js';
export declare function useKSync(config?: {
room?: string;
serverUrl?: string;
userId?: string;
debug?: boolean;
}): {
ksync: KSync;
send: (type: string, data: any) => Promise<void>;
state: any;
isConnected: boolean;
isOnline: boolean;
};
export declare function useKSyncEvent<T = any>(ksync: KSync, eventType: string, dependencies?: any[]): T[];
export declare function useKSyncSend(ksync: KSync): {
send: (eventType: string, data: any) => Promise<void>;
isSending: boolean;
error: Error | null;
};
export declare function useKSyncState<T = any>(ksync: KSync, materializerName?: string, dependencies?: any[]): T | undefined;
export declare function useKSyncPresence(ksync: KSync, initialData?: Record<string, any>): {
presence: {};
myPresence: Record<string, any>;
updatePresence: (data: Record<string, any>) => void;
};
export declare function useKSyncStream(ksync: KSync, streamId?: string): {
content: string;
isComplete: boolean;
isStreaming: boolean;
startStream: (options?: any) => Promise<void>;
sendChunk: (id: string, chunk: string) => Promise<void>;
};
export declare function useKSyncOptimistic<T>(ksync: KSync, eventType: string, optimisticUpdater: (currentData: T[], newData: any) => T[]): {
data: T[];
pendingCount: number;
sendOptimistic: (data: any, tempId?: string) => Promise<void>;
};
export declare function useKSyncConnection(ksync: KSync): {
isConnected: boolean;
isConnecting: boolean;
error: Error | null;
connect: () => Promise<void>;
disconnect: () => Promise<void>;
};
export declare function KSyncProvider({ ksync, children }: {
ksync: KSync;
children: ReactNode;
}): React.FunctionComponentElement<React.ProviderProps<KSync | null>>;
export declare function useKSyncContext(): KSync;
//# sourceMappingURL=index.d.ts.map