import ApiRequester from '../utils/api-requester';
import type { UuidSearchableQueryParams, SearchableQueryParams, PhonebookResponseItem, QueryParams, UUID } from '../domain/types';
import { Contact } from '../index';
import type { NewContact, DirectorySource, DirectorySources } from '../index';
export interface DirD {
    search: (context: string, term: string) => Promise<Array<Contact>>;
    listPersonalContacts: (queryParams?: QueryParams) => Promise<Array<Contact>>;
    fetchPersonalContact: (contactUuid: string) => Promise<Contact>;
    addContact: (contact: NewContact) => Promise<Contact>;
    editContact: (contact: Contact) => Promise<Contact>;
    importContacts: (csv: string) => Promise<Contact[]>;
    deleteContact: (contactUuid: UUID) => Promise<void>;
    listFavorites: (context: string) => Promise<Array<Contact>>;
    markAsFavorite: (source: string, sourceId: string) => Promise<boolean>;
    removeFavorite: (source: string, sourceId: string) => Promise<void>;
    fetchOffice365Source: (context: string) => Promise<DirectorySources>;
    fetchOffice365Contacts: (source: DirectorySource, queryParams: SearchableQueryParams) => Promise<Contact[]>;
    fetchWorkanoSource: (context: string) => Promise<DirectorySources>;
    fetchSourcesFor: (context: string, backend: string) => Promise<DirectorySources>;
    fetchWorkanoContacts: (source: DirectorySource, queryParams: UuidSearchableQueryParams) => Promise<Contact[]>;
    fetchGoogleSource: (context: string) => Promise<DirectorySources>;
    fetchGoogleContacts: (source: DirectorySource, queryParams: SearchableQueryParams) => Promise<Contact[]>;
    fetchConferenceSource: (context: string) => Promise<DirectorySources>;
    fetchConferenceContacts: (source: DirectorySource, queryParams?: SearchableQueryParams) => Promise<Contact[]>;
    fetchPhonebookContacts: (source: DirectorySource, queryParams?: QueryParams) => Promise<{
        items: PhonebookResponseItem[];
        total: number;
    }>;
    findMultipleContactsByNumber: (numbers: string[], fields?: Record<string, any>) => Promise<Contact[]>;
}
declare const _default: (client: ApiRequester, baseUrl: string) => DirD;
export default _default;
//# sourceMappingURL=dird.d.ts.map