/**
 * @agentuity/hono - Agentuity middleware for Hono
 *
 * Provides the `agentuity()` middleware that initializes telemetry and service clients,
 * injecting them into Hono's context variables.
 *
 * @example Basic usage (auto-configured from env vars):
 * ```typescript
 * import { Hono } from 'hono';
 * import { agentuity } from '@agentuity/hono';
 *
 * const app = new Hono();
 * app.use('*', agentuity());
 *
 * app.get('/data', async (c) => {
 *   const { kv, logger } = c.var;
 *   const data = await kv.get('namespace', 'key');
 *   return c.json(data);
 * });
 * ```
 */
import type { Env, MiddlewareHandler } from 'hono';
import { type TelemetryConfig, type TelemetryResponse, type Logger } from '@agentuity/telemetry';
import { KeyValueClient, type KeyValueClientOptions } from '@agentuity/keyvalue';
import { VectorClient, type VectorClientOptions } from '@agentuity/vector';
import { StreamClient, type StreamClientOptions } from '@agentuity/stream';
import { QueueClient, type QueueClientOptions } from '@agentuity/queue';
import { EmailClient, type EmailClientOptions } from '@agentuity/email';
import { TaskClient, type TaskClientOptions } from '@agentuity/task';
import { ScheduleClient, type ScheduleClientOptions } from '@agentuity/schedule';
import { SandboxClient, type SandboxClientOptions } from '@agentuity/sandbox';
export interface ServicesConfig {
    /** Logger instance */
    logger?: Logger;
    /** Service client options */
    clients?: {
        kv?: KeyValueClientOptions;
        vector?: VectorClientOptions;
        stream?: StreamClientOptions;
        queue?: QueueClientOptions;
        email?: EmailClientOptions;
        task?: TaskClientOptions;
        schedule?: ScheduleClientOptions;
        sandbox?: SandboxClientOptions;
    };
}
export interface Services {
    kv: KeyValueClient;
    stream: StreamClient;
    vector: VectorClient;
    sandbox: SandboxClient;
    queue: QueueClient;
    email: EmailClient;
    schedule: ScheduleClient;
    task: TaskClient;
}
export interface AgentuityOptions {
    /** Telemetry configuration overrides */
    telemetry?: Partial<TelemetryConfig>;
    /** Services configuration */
    services?: ServicesConfig;
}
/**
 * Get initialized services. Throws if not initialized.
 */
export declare function getServices(): Services;
/**
 * Reset global state (for testing).
 */
export declare function resetServices(): void;
/**
 * Create the Agentuity middleware for Hono.
 *
 * Initializes telemetry and services at middleware composition time,
 * making them available via Hono's context variables.
 *
 * Telemetry auto-configures from AGENTUITY_* environment variables.
 * Services auto-configure from AGENTUITY_SDK_KEY.
 */
export declare function agentuity<E extends Env = any, P extends string = any>(options?: AgentuityOptions): MiddlewareHandler<E, P>;
/**
 * Get the telemetry instance. Available after agentuity() is composed.
 */
export declare function getTelemetry(): TelemetryResponse | null;
/**
 * Reset global state (for testing).
 */
export declare function reset(): void;
export type { TelemetryConfig, TelemetryResponse, Logger } from '@agentuity/telemetry';
//# sourceMappingURL=index.d.ts.map