import { ReactNode } from "react"; export declare type Config = { SERVER_URL: string; FETCH_FN?: any; TENANT_ID: string; }; export declare type UserRole = "ROLE_TENANT_USER" | "ROLE_TENANT_STAFF" | "ROLE_TENANT_ADMIN"; export declare type Tenant = { id: string; name: string; organizationName: string; }; export declare type User = { id: string; username: string; remarkName: string; remarkPhone: string; remarkNote: string; nickname: string; tenantUserUniqueId: string; iconUrl?: string; roles?: UserRole[]; tenant?: Tenant; phone?: string; enabled?: boolean; }; export interface AuthUser extends User { access_token: string; tenantId: string; } export declare type ChatMessage = { id: string; chatId: string; text: string; jsonContent: string; sender: User; receiver?: User; dateCreated: string; failed?: boolean; chatIndex: number; picUrl: string; }; export declare type ChatMember = { id: string; user: User; }; export declare type Chat = { id: string; creator: User; partner: User; participants: ChatMember[]; events: ChatEvent[]; lastEventIndex: number; lastMessage: ChatMessage; }; export declare type ChatEvent = { id: string; message: ChatMessage; chat: Chat; creator: User; eventType: ChatEventType; dateCreated: string; relatedEvents: ChatEvent[]; failed?: boolean; data?: string; customEventType?: string; }; export declare const OChatEventType: { readonly SEND_MESSAGE: "SEND_MESSAGE"; readonly DELETE_MESSAGE: "DELETE_MESSAGE"; readonly ADD_USER: "ADD_USER"; readonly REMOVE_USER: "REMOVE_USER"; readonly CREATE: "CREATE"; }; export declare type ChatEventType = typeof OChatEventType[keyof typeof OChatEventType]; export declare type SendMessageInput = { message?: { text: string; picUrl?: string; jsonContent?: string; }; isSystem?: boolean; chatEvent?: { eventType: string; data?: string; relatedEventId?: string; }; }; export declare type SendMessageFunction = (params: SendMessageInput) => Promise; export declare type PluginComponentProps = { me: User; chat: Chat; onClose: () => void; mutate: (mutation: string, varibales?: any) => Promise; query: (query: string, varibales?: any) => Promise; sendMessage: SendMessageFunction; }; export declare type BreezeChatPlugin = { id: string; name?: string; iconUrl?: string; type?: string; onClick?: (evt: any, sendMessage?: (url: string) => void) => void; render?: (props: PluginComponentProps) => ReactNode; init?: () => void; events?: { name: string; messageRender?: ({ openPlugin, }: { openPlugin: (data?: any) => void; [key: string]: any; }) => ReactNode; eventRender?: ({ openPlugin, event, }: { openPlugin: (data?: any) => void; [key: string]: any; event: ChatEvent; }) => ReactNode; }[]; skipRender?: boolean; }; export declare type BreezeChatPluginDescriptor = { id: string; init?: () => void; }; //# sourceMappingURL=types.d.ts.map