import type { JsonObject } from '../../../conversion/hub/types/json.js';
export interface NativeReqOutboundContextMergePlanInput {
    snapshot?: Record<string, unknown>;
    existingToolOutputs?: unknown[];
    hasExistingTools: boolean;
}
export interface NativeReqOutboundFormatBuildInput {
    formatEnvelope: Record<string, unknown>;
    protocol: string;
}
export interface NativeReqOutboundContextMergePlan {
    mergedToolOutputs?: Array<{
        tool_call_id: string;
        content: string;
        name?: string;
    }>;
    normalizedTools?: unknown[];
}
export interface NativeReqOutboundContextSnapshotPatchInput {
    chatEnvelope: Record<string, unknown>;
    snapshot: Record<string, unknown>;
}
export interface NativeReqOutboundContextSnapshotPatch {
    toolOutputs?: Array<{
        tool_call_id: string;
        content: string;
        name?: string;
    }>;
    tools?: Array<{
        type: 'function';
        function: {
            name: string;
            description?: string;
            parameters: unknown;
            strict?: boolean;
        };
    }>;
}
export interface NativeReqOutboundCompatAdapterContextInput {
    __rt?: Record<string, unknown>;
    compatibilityProfile?: string;
    providerProtocol?: string;
    providerId?: string;
    providerKey?: string;
    runtimeKey?: string;
    requestId?: string;
    clientRequestId?: string;
    groupRequestId?: string;
    sessionId?: string;
    conversationId?: string;
    entryEndpoint?: string;
    routeId?: string;
    capturedChatRequest?: JsonObject;
    deepseek?: Record<string, unknown>;
    claudeCode?: Record<string, unknown>;
    estimatedInputTokens?: number;
    modelId?: string;
    clientModelId?: string;
    originalModelId?: string;
}
export interface NativeReqOutboundStandardizedToChatInput {
    request: JsonObject;
    adapterContext: NativeReqOutboundCompatAdapterContextInput;
}
export interface NativeReqOutboundStage3CompatInput {
    payload: JsonObject;
    adapterContext: NativeReqOutboundCompatAdapterContextInput;
    explicitProfile?: string;
}
export interface NativeReqOutboundStage3CompatOutput {
    payload: JsonObject;
    appliedProfile?: string;
    nativeApplied: boolean;
    rateLimitDetected?: boolean;
}
export interface NativeRespInboundStage3CompatInput {
    payload: JsonObject;
    adapterContext: NativeReqOutboundCompatAdapterContextInput;
    explicitProfile?: string;
}
export type NativeRespInboundStage3CompatOutput = NativeReqOutboundStage3CompatOutput;
export interface NativeToolSessionCompatInput {
    messages: unknown[];
    toolOutputs?: unknown[];
}
export interface NativeToolSessionCompatOutput {
    messages: unknown[];
    toolOutputs?: unknown[];
}
export interface NativeToolSessionHistoryUpdateInput {
    messages: unknown[];
    existingHistory?: {
        lastMessages: Array<{
            role: string;
            toolUse?: {
                id: string;
                name?: string;
            };
            toolResult?: {
                id: string;
                name?: string;
                status: string;
            };
            ts: string;
        }>;
        pendingToolUses: Record<string, {
            name?: string;
            ts: string;
        }>;
        updatedAt: string;
    };
    maxMessages?: number;
    nowIso?: string;
}
export interface NativeToolSessionHistoryUpdateOutput {
    history?: {
        lastMessages: Array<{
            role: string;
            toolUse?: {
                id: string;
                name?: string;
            };
            toolResult?: {
                id: string;
                name?: string;
                status: string;
            };
            ts: string;
        }>;
        pendingToolUses: Record<string, {
            name?: string;
            ts: string;
        }>;
        updatedAt: string;
    };
    recordsCount: number;
}
export declare function resolveReqOutboundContextMergePlanWithNative(input: NativeReqOutboundContextMergePlanInput): NativeReqOutboundContextMergePlan;
export declare function buildReqOutboundFormatPayloadWithNative(input: NativeReqOutboundFormatBuildInput): JsonObject;
export declare function applyReqOutboundContextSnapshotWithNative(input: NativeReqOutboundContextSnapshotPatchInput): NativeReqOutboundContextSnapshotPatch;
export declare function runReqOutboundStage3CompatWithNative(input: NativeReqOutboundStage3CompatInput): NativeReqOutboundStage3CompatOutput;
export declare function runRespInboundStage3CompatWithNative(input: NativeRespInboundStage3CompatInput): NativeRespInboundStage3CompatOutput;
export declare function normalizeToolSessionMessagesWithNative(input: NativeToolSessionCompatInput): NativeToolSessionCompatOutput;
export declare function updateToolSessionHistoryWithNative(input: NativeToolSessionHistoryUpdateInput): NativeToolSessionHistoryUpdateOutput;
export declare function applyClaudeThinkingToolSchemaCompatWithNative(payload: JsonObject): JsonObject;
export declare function standardizedToChatEnvelopeWithNative(input: NativeReqOutboundStandardizedToChatInput): JsonObject;
export declare function shouldAttachReqOutboundContextSnapshotWithNative(hasSnapshot: boolean, contextMetadataKey: string | undefined): boolean;
