import { type ActionInputAppendedStreamEvent, type MessageAppendedStreamEvent, type MessageStreamEvent, type MessageStreamEventMeta, type ReasoningAppendedStreamEvent, type UnstampedMessageStreamEvent } from "#protocol/message.js";
interface MessageAppendedStreamEventV24 {
    data: {
        messageDelta: string;
        messageSoFar: string;
        sequence: number;
        stepIndex: number;
        turnId: string;
    };
    type: "message.appended";
}
interface ReasoningAppendedStreamEventV24 {
    data: {
        reasoningDelta: string;
        reasoningSoFar: string;
        sequence: number;
        stepIndex: number;
        turnId: string;
    };
    type: "reasoning.appended";
}
interface ActionInputAppendedStreamEventV24 {
    data: {
        callId: string;
        inputTextDelta: string;
        inputTextOffset: number;
        sequence: number;
        stepIndex: number;
        toolName: string;
        turnId: string;
    };
    type: "action.input.appended";
}
interface MessageStreamAppendEventsByVersion {
    "21": MessageAppendedStreamEventV24 | ReasoningAppendedStreamEventV24;
    "22": MessageAppendedStreamEventV24 | ReasoningAppendedStreamEventV24;
    "23": MessageAppendedStreamEventV24 | ReasoningAppendedStreamEventV24;
    "24": ActionInputAppendedStreamEventV24 | MessageAppendedStreamEventV24 | ReasoningAppendedStreamEventV24;
    "25": ActionInputAppendedStreamEvent | MessageAppendedStreamEvent | ReasoningAppendedStreamEvent;
}
export type MessageStreamVersion = keyof MessageStreamAppendEventsByVersion;
type VersionIndependentMessageStreamEvent = Exclude<UnstampedMessageStreamEvent, ActionInputAppendedStreamEvent | MessageAppendedStreamEvent | ReasoningAppendedStreamEvent>;
type UnstampedMessageStreamEventForVersion<Version extends MessageStreamVersion> = VersionIndependentMessageStreamEvent | MessageStreamAppendEventsByVersion[Version];
export type MessageStreamEventForVersion<Version extends MessageStreamVersion> = UnstampedMessageStreamEventForVersion<Version> & {
    readonly meta: MessageStreamEventMeta;
};
type SupportedMessageStreamEvent = MessageStreamEventForVersion<MessageStreamVersion>;
/** Normalizes one event from a declared wire version into the current event contract. */
export declare function normalizeMessageStreamEvent<Version extends MessageStreamVersion>(version: Version, event: MessageStreamEventForVersion<Version>): MessageStreamEvent;
/** Normalizes a persisted stream that may contain events written before v25. */
export declare function normalizePersistedMessageStreamEvent(event: SupportedMessageStreamEvent): MessageStreamEvent;
export {};
