import { AxiosInstance, AxiosRequestConfig } from 'axios';
import { HealthEndpoint } from './endpoints/health/handler';
import { APIKeyEndpoint } from './endpoints/apikey/handler';
import { LogsEndpoint } from './endpoints/logs/handler';
import { MetricsEndpoint } from './endpoints/metrics/handler';
import { ItemsEndpoint } from './endpoints/items/handler';
import { IntelligenceEndpoint } from './endpoints/intelligence/handler';
import { AnalyzeEndpoint } from './endpoints/analyze/handler';
import { AppEndpoint } from './endpoints/app/handler';
export declare class WatchtowerSDK {
    private client;
    readonly health: HealthEndpoint;
    readonly apikey: APIKeyEndpoint;
    readonly logs: LogsEndpoint;
    readonly metrics: MetricsEndpoint;
    readonly items: ItemsEndpoint;
    readonly intelligence: IntelligenceEndpoint;
    readonly analyze: AnalyzeEndpoint;
    readonly app: AppEndpoint;
    constructor(config?: AxiosRequestConfig);
    /**
     * Make a GET request
     * @param url - The endpoint URL
     * @param config - Optional Axios request configuration
     * @returns Promise with the response data
     */
    get<T = any>(url: string, config?: AxiosRequestConfig): Promise<T>;
    /**
     * Make a POST request
     * @param url - The endpoint URL
     * @param data - The data to send
     * @param config - Optional Axios request configuration
     * @returns Promise with the response data
     */
    post<T = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<T>;
    /**
     * Make a PUT request
     * @param url - The endpoint URL
     * @param data - The data to send
     * @param config - Optional Axios request configuration
     * @returns Promise with the response data
     */
    put<T = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<T>;
    /**
     * Make a DELETE request
     * @param url - The endpoint URL
     * @param config - Optional Axios request configuration
     * @returns Promise with the response data
     */
    delete<T = any>(url: string, config?: AxiosRequestConfig): Promise<T>;
    /**
     * Get the underlying Axios instance
     * @returns The Axios instance
     */
    getClient(): AxiosInstance;
}
