import { DotCMSClientConfig } from '@dotcms/types';
import { AIClient } from './ai/ai-api';
import { Content } from './content/content-api';
import { NavigationClient } from './navigation/navigation-api';
import { PageClient } from './page/page-api';
/**
 * Client for interacting with the DotCMS REST API.
 * Provides access to content, page, and navigation functionality.
 */
declare class DotCMSClient {
    private config;
    private requestOptions;
    private httpClient;
    /**
     * Client for content-related operations.
     */
    content: Content;
    /**
     * Client for page-related operations.
     */
    page: PageClient;
    /**
     * Client for navigation-related operations.
     */
    nav: NavigationClient;
    /**
     * Client for AI-related operations.
     * @experimental This client is experimental and may be subject to change.
     */
    ai: AIClient;
    /**
     * Creates a new DotCMS client instance.
     *
     * @param config - Configuration options for the client
     * @throws Warning if dotcmsUrl is invalid or authToken is missing
     */
    constructor(config?: DotCMSClientConfig);
    /**
     * Creates request options with authentication headers.
     *
     * @param config - The client configuration
     * @returns Request options with authorization headers
     */
    private createAuthenticatedRequestOptions;
}
/**
 * Creates and returns a new DotCMS client instance.
 *
 * @param config - Configuration options for the client
 * @returns A configured DotCMS client instance
 * @example
 * ```typescript
 * const client = dotCMSCreateClient({
 *   dotcmsUrl: 'https://demo.dotcms.com',
 *   authToken: 'your-auth-token'
 * });
 *
 * // Use the client to fetch content
 * const pages = await client.page.get('/about-us');
 * ```
 */
export declare const createDotCMSClient: (clientConfig: DotCMSClientConfig) => DotCMSClient;
export {};
