/**
 * LLM Platform Tool Adapter
 *
 * Typed wrapper over platform.call() for LLM generation.
 * Singleton export -- no credential needed (platform tool).
 *
 * Types are shared with the server-side LLM engine and inlined for SDK consumers.
 */
import type { LLMGenerateRequest, LLMGenerateResponse, LLMModel } from '../../types/index.js';
type LLMProvider = 'openai' | 'anthropic' | 'openrouter' | 'google';
/**
 * SDK LLM generate params.
 * Extends LLMGenerateRequest with required provider/model for worker→platform dispatch.
 * Provider and model must always be specified explicitly — no implicit fallback.
 */
export interface SDKLLMGenerateParams extends Omit<LLMGenerateRequest, 'signal' | 'responseSchema'> {
    /** LLM provider */
    provider: LLMProvider;
    /** Model identifier — must be a supported LLMModel */
    model: LLMModel;
    /** JSON Schema for structured output (optional — omit for unstructured text) */
    responseSchema?: unknown;
}
/**
 * Typed LLM adapter for structured output generation.
 *
 * Note: The `signal` property on LLMGenerateRequest is NOT serializable
 * over the postMessage boundary. Abort signals are handled at the worker
 * level via the parent process sending an 'abort' message.
 *
 * @example
 * ```ts
 * import { llm } from '@elevasis/sdk/worker'
 *
 * const response = await llm.generate({
 *   provider: 'anthropic',
 *   model: 'claude-sonnet-4-5',
 *   messages: [{ role: 'user', content: 'Summarize this document...' }],
 *   responseSchema: { type: 'object', properties: { summary: { type: 'string' } } },
 * })
 * console.log(response.output)
 * ```
 */
export declare const llm: {
    generate: <T = unknown>(params: SDKLLMGenerateParams) => Promise<LLMGenerateResponse<T>>;
};
export {};
