import { type AgentDefinition, type SDKMessage } from "@anthropic-ai/claude-agent-sdk";
import type { Logger } from "pino";
import { type ClaudeQueryFactory } from "./query.js";
import { type AgentCapabilityFlags, type AgentClient, type AgentCreateSessionOptions, type AgentFeature, type AgentLaunchContext, type AgentMetadata, type AgentModelDefinition, type AgentPersistenceHandle, type AgentSession, type AgentSessionConfig, type AgentTimelineItem, type ListModelsOptions, type ListPersistedAgentsOptions, type PersistedAgentDescriptor } from "../../agent-sdk-types.js";
import { type ProviderRuntimeSettings } from "../../provider-launch-config.js";
export declare function normalizeClaudeAskUserQuestionUpdatedInput(updatedInput: AgentMetadata | undefined, fallbackInput: AgentMetadata | undefined): AgentMetadata;
interface EventIdentifiers {
    taskId: string | null;
    parentMessageId: string | null;
    messageId: string | null;
}
export interface ClaudeContentChunk {
    type: string;
    [key: string]: unknown;
}
interface ClaudeAgentClientOptions {
    defaults?: {
        agents?: Record<string, AgentDefinition>;
    };
    logger: Logger;
    runtimeSettings?: ProviderRuntimeSettings;
    queryFactory?: ClaudeQueryFactory;
    resolveBinary?: () => Promise<string>;
}
export declare function extractUserMessageText(content: unknown): string | null;
export declare function readEventIdentifiers(message: SDKMessage): EventIdentifiers;
export declare class ClaudeAgentClient implements AgentClient {
    readonly provider: "claude";
    readonly capabilities: AgentCapabilityFlags;
    private readonly defaults?;
    private readonly logger;
    private readonly runtimeSettings?;
    private readonly queryFactory?;
    private readonly resolveBinary;
    constructor(options: ClaudeAgentClientOptions);
    createSession(config: AgentSessionConfig, launchContext?: AgentLaunchContext, options?: AgentCreateSessionOptions): Promise<AgentSession>;
    resumeSession(handle: AgentPersistenceHandle, overrides?: Partial<AgentSessionConfig>, launchContext?: AgentLaunchContext): Promise<AgentSession>;
    listModels(_options: ListModelsOptions): Promise<AgentModelDefinition[]>;
    listFeatures(config: AgentSessionConfig): Promise<AgentFeature[]>;
    listPersistedAgents(options?: ListPersistedAgentsOptions): Promise<PersistedAgentDescriptor[]>;
    isAvailable(): Promise<boolean>;
    getDiagnostic(): Promise<{
        diagnostic: string;
    }>;
    private assertConfig;
}
interface ClaudeHistoryEntry {
    type?: unknown;
    subtype?: unknown;
    isCompactSummary?: unknown;
    isSidechain?: unknown;
    uuid?: unknown;
    message?: {
        content?: unknown;
        [key: string]: unknown;
    };
    [key: string]: unknown;
}
export declare function convertClaudeHistoryEntry(entry: ClaudeHistoryEntry, mapBlocks: (content: string | ClaudeContentChunk[]) => AgentTimelineItem[]): AgentTimelineItem[];
export {};
//# sourceMappingURL=agent.d.ts.map