/**
 * SmartLead MCP Server - Client Management Client
 *
 * Client module for client management API endpoints.
 * Handles all client-related operations including creation, updates, and management.
 *
 * @author LeadMagic Team
 * @version 1.5.0
 */
import { BaseSmartLeadClient } from '../../client/base.js';
import type { SuccessResponse } from '../../types.js';
interface CreateClientRequest {
    name: string;
    email: string;
    organization?: string;
    permissions?: string[];
    settings?: Record<string, unknown>;
}
interface ClientApiKeyRequest {
    client_id?: number;
    name?: string;
    permissions?: string[];
}
interface Client {
    id: number;
    name: string;
    email: string;
    organization?: string;
    created_at: string;
    updated_at: string;
    status: string;
}
interface TeamDetails {
    team_id: string;
    team_name: string;
    organization: string | null;
    members_count: number;
    clients: Client[];
    active_campaigns: number;
    recent_performance: {
        period: string;
        stats: {
            sent: number;
            opened: number;
            replied: number;
            bounced: number;
        };
    };
    created_at: string | null;
    last_updated: string;
}
interface TeamDetailsResponse extends SuccessResponse {
    data: TeamDetails;
}
/**
 * Client Management Client
 *
 * Provides methods for managing SmartLead clients including:
 * - Creating and updating clients
 * - Managing client settings and permissions
 * - Client analytics and reporting
 * - Client team management
 */
export declare class ClientManagementClient extends BaseSmartLeadClient {
    /**
     * Add Client To System (Whitelabel or not)
     * POST /client
     */
    addClientToSystem(params: CreateClientRequest): Promise<SuccessResponse>;
    /**
     * Create a new client (alias for addClientToSystem)
     */
    createClient(params: CreateClientRequest): Promise<SuccessResponse>;
    /**
     * Fetch all clients
     * GET /client
     */
    getAllClients(): Promise<Client[]>;
    /**
     * Create New Client API Key
     * POST /client/api-key
     */
    createClientApiKey(params: ClientApiKeyRequest): Promise<SuccessResponse>;
    /**
     * Get Clients API Keys
     * GET /client/api-key
     */
    getClientApiKeys(): Promise<SuccessResponse>;
    /**
     * Delete Client API Key
     * DELETE /client/api-key/{api_key_id}
     */
    deleteClientApiKey(apiKeyId: number): Promise<SuccessResponse>;
    /**
     * Reset Client API Key
     * PUT /client/api-key/{api_key_id}/reset
     */
    resetClientApiKey(apiKeyId: number): Promise<SuccessResponse>;
    /**
     * Get team details - Aggregates team information from various sources
     * This is a wrapper method that provides simplified team information
     * without requiring date ranges like the analytics endpoints
     *
     * @param {string} [teamId] - Optional team ID to filter results (defaults to 'default')
     * @returns {Promise<TeamDetailsResponse>} Team details including members, campaigns, and performance metrics
     * @throws {Error} If team details cannot be retrieved or if provided teamId is invalid
     *
     * @example
     * // Get default team details
     * const teamDetails = await client.getTeamDetails();
     * console.log(`Team: ${teamDetails.data.team_name} with ${teamDetails.data.members_count} members`);
     *
     * @example
     * // Get specific team details
     * const teamDetails = await client.getTeamDetails('team_123');
     * console.log(`Active campaigns: ${teamDetails.data.active_campaigns}`);
     *
     * @description
     * This method aggregates data from multiple endpoints:
     * - Client list for team member information
     * - Team board analytics for performance metrics
     * - Campaign list for active campaign count
     *
     * Returns a unified response with fallback values if any endpoint fails,
     * ensuring the method remains robust and reliable.
     */
    getTeamDetails(teamId?: string): Promise<TeamDetailsResponse>;
}
export {};
//# sourceMappingURL=client.d.ts.map