import { StatusEvent } from './syncEvents'; import { ConnectP2PLocalOptions, ConnectSyncServerOptions, ConnectUdpOptions } from './Sync'; export default interface ISync { connect(options?: string | ConnectSyncServerOptions | ConnectP2PLocalOptions | ConnectUdpOptions): Promise; close(): Promise; init(groupName?: string, deviceIdentification?: string): Promise; joinGroup({ groupName, deviceIdentification }: { groupName?: string; deviceIdentification?: string; }): Promise; leaveGroup(groupName?: string): Promise; wait(data?: any, groupName?: string, timeout?: number): Promise; cancelWait(groupName?: string): Promise; setValue(key: string, value: any, groupName?: string): Promise; broadcastValue({ groupName, key, value }: { groupName?: string; key: string; value: any; }): Promise; onValue(listener: (key: string, value: any, groupName?: string) => void): void; onStatus(listener: (status: StatusEvent) => void): void; onClosed(listener: (error?: Error) => void): void; }