/// <reference types="node" />
import type { Logger } from './types.cjs';
export interface AgentOptions {
    enabled?: boolean;
    name?: string;
    /**
     * Hive endpoint or proxy
     */
    endpoint: string;
    /**
     * API Token
     */
    token: string;
    /**
     * 30s by default
     */
    timeout?: number;
    /**
     * false by default
     */
    debug?: boolean;
    /**
     * 5 by default
     */
    maxRetries?: number;
    /**
     * 200 by default
     */
    minTimeout?: number;
    /**
     * Send reports in interval (defaults to 10_000ms)
     */
    sendInterval?: number;
    /**
     * Max number of traces to send at once (defaults to 25)
     */
    maxSize?: number;
    /**
     * Custom logger (defaults to console)
     */
    logger?: Logger;
    /**
     * Define a custom http agent to be used when performing http requests
     */
    httpAgent?: any;
    /**
     * Define a custom https agent to be used when performing https requests
     */
    httpsAgent?: any;
}
export declare function createAgent<TEvent, TResult = void>(pluginOptions: AgentOptions, { prefix, data, body, headers, }: {
    prefix: string;
    data: {
        clear(): void;
        set(data: TEvent): void;
        size(): number;
    };
    body(): Buffer | string | Promise<string | Buffer>;
    headers?(): Record<string, string>;
}): {
    capture: (event: TEvent) => void;
    sendImmediately: (event: TEvent) => Promise<TResult | null>;
    dispose: () => Promise<void>;
};
//# sourceMappingURL=agent.d.ts.map