import type { HttpClient } from "../client/HttpClient";
import type { Result } from "../types/Result";
import { MNotifyError } from "../errors/MNotifyError";
export interface Contact {
    _id: string;
    phone: string;
    title?: string;
    firstname: string;
    lastname: string;
    email?: string[];
    dbo?: string;
}
export type CreateContactInput = Omit<Contact, "_id">;
/**
 * Service for managing contacts with mNotify API
 */
export declare class ContactService {
    private readonly client;
    constructor(client: HttpClient);
    private annotate;
    /**
     * Creates a new contact (railway-oriented programming)
     * @param contact - Contact data
     * @returns Result containing created contact with ID or error
     */
    createContactSafe(contact: CreateContactInput, groupId?: string): Promise<Result<Contact, MNotifyError>>;
    /**
     * Creates a new contact (throws on error - legacy API)
     * @param contact - Contact data
     * @returns Created contact with ID
     */
    createContact(contact: CreateContactInput, groupId?: string): Promise<Contact>;
    /**
     * Retrieves all contacts (railway-oriented programming)
     * @returns Result containing array of contacts or error
     */
    getContactsSafe(): Promise<Result<Contact[], MNotifyError>>;
    /**
     * Retrieves all contacts (throws on error - legacy API)
     * @returns Array of contacts
     */
    getContacts(): Promise<Contact[]>;
}
