import { CreateDomainAdminRequest, DeleteDomainAdminRequest, DomainAdmin, EditDomainAdminRequest, IssueDomainAdminSsoTokenRequest, MailcowResponse } from '../types';
import MailcowClient from '../index';
/**
 * Interface for all Domain Admin endpoints related to Mailcow.
 */
export interface DomainAdminEndpoints {
    /**
     * Creates a new Domain Admin user.
     * @param payload - Object containing details to create a new Domain Admin.
     * @returns A promise that resolves to a response indicating success or failure.
     */
    create(payload: CreateDomainAdminRequest): Promise<MailcowResponse>;
    /**
     * Issues a Single Sign-On token for a Domain Admin user.
     * @param payload - Object containing the username for which to issue the SSO token.
     * @returns A promise that resolves to a response containing the issued SSO token.
     */
    issueSsoToken(payload: IssueDomainAdminSsoTokenRequest): Promise<MailcowResponse>;
    /**
     * Edits an existing Domain Admin user.
     * @param payload - Object containing the username and attributes to edit.
     * @returns A promise that resolves to a response indicating success or failure.
     */
    edit(payload: EditDomainAdminRequest): Promise<MailcowResponse>;
    /**
     * Deletes specified Domain Admin users.
     * @param payload - Object containing list of usernames to delete.
     * @returns A promise that resolves to a response indicating success or failure.
     */
    delete(payload: DeleteDomainAdminRequest): Promise<MailcowResponse>;
    /**
     * Retrieves all Domain Admin users.
     * @returns A promise that resolves to an array of `DomainAdmin` objects.
     */
    get(id: 'all'): Promise<DomainAdmin[]>;
}
/**
 * Binder function between the MailcowClient class and the DomainAdminEndpoints.
 * @param bind - The MailcowClient instance to bind.
 * @internal
 */
export declare function domainAdminEndpoints(bind: MailcowClient): DomainAdminEndpoints;
