import { BaseModel } from "../BaseModel/BaseModel"; import type { AddAgentDataType, UpdateAgentDataType, AgentKeyParam, RevokeAPIKeyParam, DeleteSMTPPasswordParam, GetAllAgentsResponse, AgentDetailResponse, GetAPIKeysResponse, GenerateAPIKeyResponse, GetSMTPListResponse, GenerateSMTPPasswordResponse } from "./types"; declare class AgentClient extends BaseModel { basePath: string; /** Returns all mail agents associated with the account. */ getAllAgents(): Promise; /** * Creates a new mail agent. * * @param agentName - Display name for the agent. * @param description - Brief description of the agent's purpose. */ addAgent(agentData: AddAgentDataType): Promise; /** * Updates an existing mail agent's name and description. * * @param agentKey - Unique key of the agent to update. * @param agentName - New display name. * @param description - New description. */ updateAgent(agentData: UpdateAgentDataType): Promise; /** * Permanently deletes a mail agent. * * @param agentKey - Unique key of the agent to delete. * * NOTE: * Only the shutdowned agents can be deleted. */ deleteAgent({ agentKey }: AgentKeyParam): Promise; /** * Lists all API keys for the specified agent. * * @param agentKey - Unique key of the agent. */ getAPIKeys({ agentKey }: AgentKeyParam): Promise; /** * Generates a new API key for the specified agent. * * @param agentKey - Unique key of the agent. */ generateAPIKey({ agentKey }: AgentKeyParam): Promise; /** * Revokes an existing API key for an agent. * * @param agentKey - Unique key of the agent. * @param id - The ID of the API key to revoke. */ revokeAPIKey({ agentKey, id }: RevokeAPIKeyParam): Promise; /** * Lists all SMTP passwords for the specified agent. * * @param agentKey - Unique key of the agent. */ getSMTPList({ agentKey }: AgentKeyParam): Promise; /** * Generates a new SMTP password for the specified agent. * * @param agentKey - Unique key of the agent. */ generateSMTPPassword({ agentKey }: AgentKeyParam): Promise; /** * Deletes an SMTP password for the specified agent. * * @param agentKey - Unique key of the agent. * @param passwordId - ID of the SMTP password to delete. */ deleteSMTPPassword({ agentKey, passwordId }: DeleteSMTPPasswordParam): Promise; } export { AgentClient };