import { KiwiConfig } from './types';
/**
 * Base XML-RPC client for Kiwi TCMS
 */
export declare class KiwiClient {
    private client?;
    private config;
    private sessionId?;
    private cfAuthCookie?;
    constructor(config: KiwiConfig);
    /**
     * Get Cloudflare Access authorization cookie using axios
     */
    private getCloudflareAuthCookie;
    /**
     * Initialize the XML-RPC client with proper authentication
     */
    private initializeClient;
    /**
     * Make an XML-RPC method call
     */
    call<T = any>(method: string, params?: any[]): Promise<T>;
    /**
     * Authenticate with the Kiwi TCMS server
     */
    login(): Promise<string>;
    /**
     * Logout from the Kiwi TCMS server
     */
    logout(): Promise<void>;
    /**
     * Make an authenticated XML-RPC call
     * Note: Kiwi TCMS uses session cookies for authentication, not session ID parameters
     */
    authenticatedCall<T = any>(method: string, params?: any[]): Promise<T>;
    /**
     * Get the current session ID
     */
    getSessionId(): string | undefined;
    /**
     * Check if client is authenticated
     */
    isAuthenticated(): boolean;
    /**
     * Set session ID manually (useful for token-based auth)
     */
    setSessionId(sessionId: string): void;
    /**
     * Test connectivity to the server
     */
    testConnection(): Promise<string[]>;
    getVersion(): Promise<string>;
    /**
     * List available XML-RPC methods (useful for debugging)
     */
    listMethods(): Promise<string[]>;
    /**
     * Set a custom header for all requests
     */
    setHeader(name: string, value: string): void;
    /**
     * Set Cloudflare Access credentials
     */
    setCloudflareAccess(clientId: string, clientSecret: string): void;
    /**
     * Get current headers configuration
     */
    getHeaders(): {
        [key: string]: string;
    } | undefined;
    /**
     * Get the current configuration
     */
    getConfig(): KiwiConfig;
}
