import type { AgentEvent } from "@clinebot/agents";
import { type TelemetryAgentIdentityProperties } from "../telemetry/core-events";
import type { CoreSessionConfig } from "../types/config";
import type { CoreSessionEvent } from "../types/events";
import type { SessionAccumulatedUsage } from "./session-manager";
import type { ActiveSession } from "./utils/types";
export declare function extractSkillNameFromToolInput(input: unknown): string | undefined;
export interface AgentEventContext {
    sessionId: string;
    config: CoreSessionConfig;
    liveSession: ActiveSession | undefined;
    usageBySession: Map<string, SessionAccumulatedUsage>;
    persistMessages: (sessionId: string, messages: unknown[], systemPrompt?: string) => void;
    emit: (event: CoreSessionEvent) => void;
}
export interface AgentTelemetryContextOverrides {
    agentId?: string;
    conversationId?: string;
    parentAgentId?: string | null;
    createdByAgentId?: string;
    teamId?: string;
    teamName?: string;
    teamRole?: "lead" | "teammate";
    teamAgentId?: string;
    isPrimaryAgentEvent?: boolean;
}
export declare function extractAgentEventMetadata(event: AgentEvent): {
    agentId?: string;
    conversationId?: string;
    parentAgentId?: string;
};
export declare function buildTelemetryAgentIdentity(context: AgentTelemetryContextOverrides): TelemetryAgentIdentityProperties | undefined;
export declare function handleAgentEvent(ctx: AgentEventContext, event: AgentEvent, overrides?: AgentTelemetryContextOverrides): void;
//# sourceMappingURL=session-agent-events.d.ts.map