import { AxiosInstance } from 'axios';
import { PaginatedResponse, PaginationParams } from './common';
/**
 * Interface for a Log Stream
 */
export interface LogStream {
    id: number;
    label: string;
    filters: Record<string, any>;
    aggregation: Record<string, any>;
    created: string;
    updated: string;
}
/**
 * Interface for creating a Log Stream
 */
export interface CreateLogStreamRequest {
    label: string;
    filters: Record<string, any>;
    aggregation: Record<string, any>;
}
/**
 * Interface for updating a Log Stream
 */
export interface UpdateLogStreamRequest {
    label?: string;
    filters?: Record<string, any>;
    aggregation?: Record<string, any>;
}
/**
 * Interface for a Log Stream History entry
 */
export interface LogStreamHistory {
    id: number;
    stream_id: number;
    timestamp: string;
    data: Record<string, any>;
}
/**
 * Interface for a Log Destination
 */
export interface LogDestination {
    id: number;
    label: string;
    type: string;
    config: Record<string, any>;
    created: string;
    updated: string;
}
/**
 * Interface for creating a Log Destination
 */
export interface CreateLogDestinationRequest {
    label: string;
    type: string;
    config: Record<string, any>;
}
/**
 * Interface for updating a Log Destination
 */
export interface UpdateLogDestinationRequest {
    label?: string;
    type?: string;
    config?: Record<string, any>;
}
/**
 * Interface for a Log Destination History entry
 */
export interface LogDestinationHistory {
    id: number;
    destination_id: number;
    timestamp: string;
    data: Record<string, any>;
}
/**
 * Client for Linode Monitor Logs API
 */
export interface MonitorLogsClient {
    /**
     * Get a list of log streams
     * @param params - Pagination parameters
     * @returns A paginated list of log streams
     */
    getLogStreams(params?: PaginationParams): Promise<PaginatedResponse<LogStream>>;
    /**
     * Get a specific log stream
     * @param streamId - The ID of the log stream
     * @returns The log stream object
     */
    getLogStream(streamId: number): Promise<LogStream>;
    /**
     * Create a new log stream
     * @param data - The data for the new log stream
     * @returns The newly created log stream
     */
    createLogStream(data: CreateLogStreamRequest): Promise<LogStream>;
    /**
     * Update an existing log stream
     * @param streamId - The ID of the log stream to update
     * @param data - The data to update
     * @returns The updated log stream
     */
    updateLogStream(streamId: number, data: UpdateLogStreamRequest): Promise<LogStream>;
    /**
     * Delete a log stream
     * @param streamId - The ID of the log stream to delete
     * @returns Empty response on success
     */
    deleteLogStream(streamId: number): Promise<{}>;
    /**
     * Get a log stream's history
     * @param streamId - The ID of the log stream
     * @param params - Pagination parameters
     * @returns A paginated list of log stream history entries
     */
    getLogStreamHistory(streamId: number, params?: PaginationParams): Promise<PaginatedResponse<LogStreamHistory>>;
    /**
     * Get a list of log destinations
     * @param params - Pagination parameters
     * @returns A paginated list of log destinations
     */
    getLogDestinations(params?: PaginationParams): Promise<PaginatedResponse<LogDestination>>;
    /**
     * Get a specific log destination
     * @param destinationId - The ID of the log destination
     * @returns The log destination object
     */
    getLogDestination(destinationId: number): Promise<LogDestination>;
    /**
     * Create a new log destination
     * @param data - The data for the new log destination
     * @returns The newly created log destination
     */
    createLogDestination(data: CreateLogDestinationRequest): Promise<LogDestination>;
    /**
     * Update an existing log destination
     * @param destinationId - The ID of the log destination to update
     * @param data - The data to update
     * @returns The updated log destination
     */
    updateLogDestination(destinationId: number, data: UpdateLogDestinationRequest): Promise<LogDestination>;
    /**
     * Delete a log destination
     * @param destinationId - The ID of the log destination to delete
     * @returns Empty response on success
     */
    deleteLogDestination(destinationId: number): Promise<{}>;
    /**
     * Get a log destination's history
     * @param destinationId - The ID of the log destination
     * @param params - Pagination parameters
     * @returns A paginated list of log destination history entries
     */
    getLogDestinationHistory(destinationId: number, params?: PaginationParams): Promise<PaginatedResponse<LogDestinationHistory>>;
}
/**
 * Create a new Monitor Logs client
 * @param axios - The Axios instance for API calls
 * @returns A new Monitor Logs client
 */
export declare function createMonitorLogsClient(axios: AxiosInstance): MonitorLogsClient;
