import { IndexedDb } from '../db'; import { ContactEntity, Logger, QUERY_TYPE } from '../index'; import { EMITTER_TYPE, QUERY_PAGINATED_RESULT, QUERY_RESULT, QUERY_RESULTS, Repository } from './index'; import { ContactAdvancedSearchEntity } from '../data/Contact'; import { AuthenticationService } from "../service/authenticationService"; import { PubSubService } from "type-pubsub"; interface Args { account: string; contactId?: string; query?: string; showAnonymized?: boolean; sort?: string; maxResult?: number; } export declare class ContactRepository extends Repository { private contactDb; private contactService; constructor(authenticationService: AuthenticationService, indexedDb: IndexedDb, baseURL: string, logger?: Logger); protected onCascadeChange(data: any, message: EMITTER_TYPE, channel: PubSubService, handler: any): Promise; searchContacts(bearer: string, account: string | undefined, query: string, showAnonymized?: boolean, sort?: string, maxResult?: number): Promise>; searchContactWithPages(bearer: string, account: string | undefined, query: string | ContactAdvancedSearchEntity, showAnonymized?: boolean, sort?: string, pageToken?: string): Promise>; createContact(bearer: string, account: string, contact: ContactEntity): Promise; updateContact(bearer: string, account: string, contactId: string, contact: ContactEntity): Promise; deleteContact(bearer: string, account: string, contactId: string): Promise; getContact(bearer: string, account: string, contactId: string, mode?: QUERY_TYPE): Promise>; protected remoteList(bearer: string, args: Args): Promise; protected remoteGet(bearer: string, args: Args): Promise; protected remoteCreate(bearer: string, args: Args, item: ContactEntity): Promise; protected remoteUpdate(bearer: string, args: Args, item: ContactEntity): Promise; protected remoteDelete(bearer: string, args: Args): Promise; protected localList(args: Args): Promise; protected localGet(args: Args): Promise; protected localBulkSave(args: Args, contacts: ContactEntity[]): Promise; protected localDelete(args: Args): Promise; protected localBulkDelete(items: ContactEntity[]): Promise; private checkNullable; } export {};