import type { FilePart, ImagePart, ReasoningPart, ToolCallPart, ToolResultPart, ToolApprovalRequest } from "@ai-sdk/provider-utils";
import type { ModelMessage, TextPart, UIDataTypes, UIMessagePart, UITools } from "ai";
import type { Message, MessageContentParts } from "./validators.js";
export declare const DEFAULT_RECENT_MESSAGES = 100;
export declare function isTool(message: Message | ModelMessage): boolean;
export declare function extractText(message: Message | ModelMessage): string | undefined;
export declare function joinText(parts: (UIMessagePart<UIDataTypes, UITools> | TextPart | ImagePart | FilePart | ReasoningPart | ToolCallPart | ToolResultPart | MessageContentParts | ToolApprovalRequest)[]): string;
export declare function extractReasoning(message: Message | ModelMessage): string | undefined;
export declare const DEFAULT_MESSAGE_RANGE: {
    before: number;
    after: number;
};
export declare function sorted<T extends {
    order: number;
    stepOrder: number;
}>(messages: T[], order?: "asc" | "desc"): T[];
export type ModelOrMetadata = string | ({
    provider: string;
} & ({
    modelId: string;
} | {
    model: string;
}));
export declare function getModelName(embeddingModel: ModelOrMetadata): string;
export declare function getProviderName(embeddingModel: ModelOrMetadata): string;
//# sourceMappingURL=shared.d.ts.map