import type { Message, Part } from "@opencode-ai/sdk";
type ToolUsePart = {
    type: "tool_use";
    id: string;
    [key: string]: unknown;
};
type ToolResultPart = {
    type: "tool_result";
    toolUseId: string;
    tool_use_id?: string;
    isError?: boolean;
    content: Array<{
        type: "text";
        text: string;
    }>;
    [key: string]: unknown;
};
type TextPart = {
    type: "text";
    text: string;
    synthetic: true;
};
type TransformPart = Part | ToolUsePart | ToolResultPart | TextPart;
type TransformMessageInfo = Message | {
    role: "user";
    sessionID?: string;
};
interface MessageWithParts {
    info: TransformMessageInfo;
    parts: TransformPart[];
}
type MessagesTransformHook = {
    "experimental.chat.messages.transform"?: (input: Record<string, never>, output: {
        messages: MessageWithParts[];
    }) => Promise<void>;
};
export declare function createToolPairValidatorHook(): MessagesTransformHook;
export {};
