import type { Options as ClaudeQueryOptions } from '@anthropic-ai/claude-agent-sdk';
import { Agent } from '@mastra/core/agent';
import type { MessageListInput } from '@mastra/core/agent/message-list';
import type { Mastra } from '@mastra/core/mastra';
import type { FullOutput, MastraModelOutput } from '@mastra/core/stream';
import type { SDKAgentRunOptions } from './utils.js';
export type ClaudeSDKOptions = ClaudeQueryOptions;
export type ClaudeAgentOptions = {
    /**
     * Mastra agent id used when registering this wrapper with Mastra.
     */
    id: string;
    /**
     * Optional display name for the Mastra agent. Defaults to `id`.
     */
    name?: string;
    /**
     * Description surfaced by Mastra when listing or selecting agents.
     */
    description: string;
    /**
     * Claude Agent SDK options forwarded to `query()` on every run.
     */
    sdkOptions?: ClaudeSDKOptions;
};
export type ClaudeSDKAgentRunOptions<OUTPUT = unknown> = SDKAgentRunOptions<OUTPUT> & {
    /**
     * Claude Agent SDK query options for this run. These are merged over the
     * wrapper's `sdkOptions`, which allows per-call session continuation options
     * such as `resume` or `continue`.
     */
    sdkOptions?: ClaudeSDKOptions;
};
export type ClaudeSDKAgentResumeData = {
    /**
     * Message to send while resuming the Claude SDK session.
     */
    message: MessageListInput;
    /**
     * Claude session id to resume.
     */
    sessionId: string;
    /**
     * Fork the resumed session into a new session.
     */
    forkSession?: boolean;
    /**
     * Resume the session up to a specific assistant message UUID.
     */
    resumeSessionAt?: string;
} | {
    /**
     * Message to send while continuing the latest Claude SDK session.
     */
    message: MessageListInput;
    /**
     * Continue the latest Claude session in the current working directory.
     */
    continue: true;
};
export declare class ClaudeSDKAgent extends Agent {
    #private;
    readonly options: ClaudeAgentOptions;
    constructor(options: ClaudeAgentOptions);
    __registerMastra(mastra: Mastra): void;
    supportsMemory(): boolean;
    generate<OUTPUT = undefined>(messages: MessageListInput, options?: ClaudeSDKAgentRunOptions<OUTPUT>): Promise<FullOutput<OUTPUT>>;
    stream<OUTPUT = undefined>(messages: MessageListInput, options?: ClaudeSDKAgentRunOptions<OUTPUT>): Promise<MastraModelOutput<OUTPUT>>;
    resumeGenerate<OUTPUT = undefined>(resumeData: ClaudeSDKAgentResumeData, options?: ClaudeSDKAgentRunOptions<OUTPUT>): Promise<FullOutput<OUTPUT>>;
    resumeStream<OUTPUT = undefined>(resumeData: ClaudeSDKAgentResumeData, options?: ClaudeSDKAgentRunOptions<OUTPUT>): Promise<MastraModelOutput<OUTPUT>>;
}
//# sourceMappingURL=index.d.ts.map