import { Logger } from 'pino'; import { Metadata } from 'grpc'; import { dialog } from '@dlghq/dialog-api'; import { SSLConfig } from './utils/createCredentials'; import Services from './services'; import { Entities, PeerEntities, ResponseEntities } from './internal/types'; import { Observable } from 'rxjs'; import { UUID, Content, OutPeer, UserOutPeer, GroupOutPeer, FileLocation, GroupMember, HistoryMessage, Group, MessageAttachment, GroupType, FullUser, HistoryListMode, Peer } from './entities'; import { FileInfo } from './utils/getFileInfo'; import RetryOptions from './entities/RetryOptions'; declare type UserPassToken = { username: string; password: string; }; export declare type Token = string | UserPassToken; declare type Config = { ssl?: SSLConfig; logger: Logger; endpoint: URL; retryOptions?: RetryOptions; }; declare class Rpc extends Services { private metadata; constructor({ ssl, logger, endpoint, retryOptions }: Config); getMetadata(): Promise; authorize(token: Token): Promise; private authorizeByToken; private authorizeByUsernameAndPassword; loadMissingPeers(peers: Array): Promise>; loadDialogs(): Promise>; loadPeerEntities(entities: PeerEntities): Promise; loadGroupMembers(peer: GroupOutPeer): Promise>>; private getInitialState; subscribeSeqUpdates(): Observable; sendMessage(peer: OutPeer, content: Content, attachment?: null | MessageAttachment, isOnlyForUser?: null | number): Promise; editMessage(mid: UUID, clock: Date, content: Content): Promise; readMessages(peer: OutPeer, since: Date): Promise; uploadFile(fileName: string, fileInfo: FileInfo, maxChunkSize?: number): Promise; fetchFileUrl(fileLocation: FileLocation): Promise; fetchMessages(mids: Array): Promise>; loadHistory(peer: OutPeer, since: Date | null, direction: HistoryListMode, limit: number): Promise>; resolvePeer(nickOrShortName: string): Promise>; loadFullUser(peer: UserOutPeer): Promise; getParameters(): Promise>; editParameter(key: string, value: string): Promise; createGroup(title: string, type: GroupType): Promise>; leaveGroup(group: GroupOutPeer): Promise; editGroupTitle(peer: GroupOutPeer, title: string): Promise; editGroupAbout(peer: GroupOutPeer, about: string | null): Promise; inviteGroupMember(group: GroupOutPeer, user: UserOutPeer): Promise; kickGroupMember(group: GroupOutPeer, user: UserOutPeer): Promise; getGroupInviteUrl(group: GroupOutPeer): Promise; joinGroupByToken(token: string): Promise>; } export default Rpc;