///
import * as _microsoft_signalr from '@microsoft/signalr';
import React, { FC, ReactNode } from 'react';
import { Styles } from 'react-modal';
interface IWeavyClient {
url: string;
tokenFactoryInternal: () => Promise;
subscribe: Function;
unsubscribe: Function;
destroy: Function;
get: (url: string, retry?: boolean) => Promise;
post: (url: string, method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH", body: string | FormData, contentType?: string, retry?: boolean) => Promise;
upload: (url: string, method: "POST" | "PUT" | "PATCH", body: string | FormData, contentType?: string, onProgress?: (progress: number) => void, retry?: boolean) => Promise;
}
type WeavyClientOptions = {
url: string;
tokenFactory: (refresh: boolean) => Promise;
};
type WeavyContextProps = {
client: IWeavyClient | null;
options?: WeavyContextOptions;
};
type WeavyContextOptions = {
zoomAuthenticationUrl?: string;
teamsAuthenticationUrl?: string;
enableScrollbarDetection?: boolean;
filebrowserUrl?: string;
pdfWorkerUrl?: string;
pdfCMapsUrl?: string;
reactions?: string[];
};
type MessengerContextProps = {
selectedConversationId: null | number;
setSelectedConversationId: Function;
};
type SortOrder = {
by: string;
descending: boolean;
};
type FileOrderBy = "id" | "name" | "size" | "created_at" | "modified_at" | "timestamp";
type FileOrder = SortOrder & {
by: FileOrderBy;
descending: boolean;
};
type FileView = "list" | "grid";
type AppFeatures = {
attachments?: boolean;
cloudFiles?: boolean;
embeds?: boolean;
meetings?: boolean;
mentions?: boolean;
polls?: boolean;
previews?: boolean;
reactions?: boolean;
receipts?: boolean;
thumbnails?: boolean;
typing?: boolean;
comments?: boolean;
versions?: boolean;
webDAV?: boolean;
};
declare class WeavyClient implements IWeavyClient {
url: string;
connection: _microsoft_signalr.HubConnection;
tokenFactory: (refresh: boolean) => Promise;
groups: string[];
connectionEvents: any[];
isConnectionStarted: any;
private signalRAccessTokenRefresh;
token: string;
tokenPromise: Promise | null;
EVENT_NAMESPACE: string;
EVENT_CLOSE: string;
EVENT_RECONNECTING: string;
EVENT_RECONNECTED: string;
constructor(options: WeavyClientOptions);
connect(): Promise;
get(url: string, retry?: boolean): Promise;
post(url: string, method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH", body: string | FormData, contentType?: string, retry?: boolean): Promise;
upload(url: string, method: "POST" | "PUT" | "PATCH", body: string | FormData, contentType?: string, onProgress?: (progress: number) => void, retry?: boolean): Promise;
getToken(refresh: boolean): Promise;
tokenFactoryInternal(refresh?: boolean): Promise;
subscribe(group: string, event: string, callback: any): Promise;
unsubscribe(group: string, event: string, callback: any): Promise;
destroy(): void;
triggerHandler(name: string, ...data: any): void;
}
declare const WeavyContext: React.Context;
type WeavyProviderProperties = {
children: React.ReactNode;
client: WeavyClient | null;
options?: WeavyContextOptions;
};
declare const WeavyProvider: ({ children, client, options }: WeavyProviderProperties) => React.JSX.Element;
declare const MessengerContext: React.Context;
type Props$1 = {
children: React.ReactNode;
};
declare const MessengerProvider: ({ children }: Props$1) => React.JSX.Element;
interface IMessenger {
}
declare const Messenger: FC;
declare const ConversationBadge: () => React.JSX.Element;
declare const ConversationList: () => React.JSX.Element;
interface ConversationProps {
id?: number | null;
showBackButton?: boolean;
features?: AppFeatures | undefined;
}
declare const _default: React.MemoExoticComponent<({ id, showBackButton, features }: ConversationProps) => React.JSX.Element>;
interface ChatProps {
uid: string;
className?: string;
features?: AppFeatures | undefined;
}
declare const Chat: ({ uid, className, features }: ChatProps) => React.JSX.Element;
interface PostsProps {
uid: string;
className?: string;
features: AppFeatures | undefined;
}
declare const Posts: ({ uid, className, features }: PostsProps) => React.JSX.Element;
interface FilesProps {
uid: string;
className?: string;
view?: FileView;
order?: FileOrder;
trashed?: boolean;
features: AppFeatures | undefined;
}
declare const Files: ({ uid, className, view: initView, order: initOrder, trashed: initTrashed, features }: FilesProps) => React.JSX.Element;
declare const UIButton: {
UI: any;
};
type DropdownProps = {
directionX?: "left" | "right";
directionY?: "up" | "down";
icon?: string;
children: React.ReactNode;
className?: string;
title?: string;
buttonContent?: React.ReactNode;
disabled?: boolean;
noWrapper?: boolean;
props?: React.HTMLAttributes;
};
type ItemProps = {
children: React.ReactNode;
className?: string;
onClick?: (e: any) => void;
active?: boolean;
props?: React.HTMLAttributes;
};
type AnchorProps = {
children: React.ReactNode;
className?: string;
link?: string;
active?: boolean;
download?: boolean;
props?: React.HTMLAttributes;
};
declare const UIDropdown: {
UI: ({ directionX, directionY, icon, children, className, title, buttonContent, disabled, noWrapper, ...props }: DropdownProps) => React.JSX.Element;
Item: ({ children, className, onClick, active, ...props }: ItemProps) => React.JSX.Element;
Anchor: ({ children, className, link, active, download, ...props }: AnchorProps) => React.JSX.Element;
Divider: () => React.JSX.Element;
};
type Props = {
name: string;
color?: string;
size?: number;
title?: string;
className?: string;
};
type IconActiveStackProps = {
className?: string;
children: ReactNode;
};
declare const UIIcon: {
UI: ({ name, color, size, className, title, ...props }: Props) => React.JSX.Element;
ActiveStack: ({ className, children }: IconActiveStackProps) => React.JSX.Element;
};
type OverlayProps = {
children: React.ReactNode;
className?: string;
isOpen: boolean;
style?: Styles;
closeOnEsc?: boolean;
onClose?: () => void;
};
declare const UIOverlay: {
UI: ({ children, className, isOpen, style, closeOnEsc, onClose }: OverlayProps) => React.JSX.Element;
};
export { UIButton as Button, Chat, _default as Conversation, ConversationBadge, ConversationList, UIDropdown as Dropdown, Files, UIIcon as Icon, Messenger, MessengerContext, MessengerProvider, UIOverlay as Overlay, Posts, WeavyClient, WeavyContext, WeavyProvider };