export interface NativeBridgeActionDescriptor {
    name: string;
    options?: Record<string, unknown>;
}
export interface NativeBridgePhaseConfig {
    inbound?: NativeBridgeActionDescriptor[];
    outbound?: NativeBridgeActionDescriptor[];
}
export interface NativeBridgePolicy {
    id: string;
    protocol?: string;
    moduleType?: string;
    request?: NativeBridgePhaseConfig;
    response?: NativeBridgePhaseConfig;
}
type NativeBridgePolicyStage = 'request_inbound' | 'request_outbound' | 'response_inbound' | 'response_outbound';
export declare function resolveBridgePolicyWithNative(options: {
    protocol?: string;
    moduleType?: string;
} | undefined): NativeBridgePolicy | undefined;
export declare function resolveBridgePolicyActionsWithNative(policy: NativeBridgePolicy | undefined, stage: NativeBridgePolicyStage): NativeBridgeActionDescriptor[] | undefined;
export interface NativeProviderOutboundLayoutRule {
    code: 'forbid_wrapper';
    path: string;
    detail: string;
}
export interface NativeProviderOutboundWrapperFlattenRule {
    wrapperKey: string;
    allowKeys?: string[];
    aliasKeys?: Record<string, string>;
    onlyIfTargetMissing?: boolean;
}
export interface NativeProviderOutboundPolicySpec {
    enforceEnabled: boolean;
    allowedTopLevelKeys?: string[];
    enforceAllowedTopLevelKeys?: boolean;
    reservedKeyPrefixes: string[];
    forbidWrappers: NativeProviderOutboundLayoutRule[];
    flattenWrappers: NativeProviderOutboundWrapperFlattenRule[];
}
export interface NativeToolSurfaceSpec {
    expectedToolFormat: 'openai' | 'anthropic' | 'gemini';
    expectedHistoryCarrier?: 'messages' | 'input';
}
export interface NativeProtocolSpec {
    id: 'openai-chat' | 'openai-responses' | 'anthropic-messages' | 'gemini-chat';
    providerOutbound: NativeProviderOutboundPolicySpec;
    toolSurface: NativeToolSurfaceSpec;
}
export interface NativeHubProtocolAllowlists {
    openaiChatAllowedFields: string[];
    openaiChatParametersWrapperAllowKeys: string[];
    openaiResponsesAllowedFields: string[];
    openaiResponsesParametersWrapperAllowKeys: string[];
    anthropicAllowedFields: string[];
    anthropicParametersWrapperAllowKeys: string[];
    geminiAllowedFields: string[];
}
export declare function resolveHubProtocolSpecWithNative(input: {
    protocol?: string;
    allowlists: {
        openaiChatAllowedFields: readonly string[];
        openaiChatParametersWrapperAllowKeys: readonly string[];
        openaiResponsesAllowedFields: readonly string[];
        openaiResponsesParametersWrapperAllowKeys: readonly string[];
        anthropicAllowedFields: readonly string[];
        anthropicParametersWrapperAllowKeys: readonly string[];
        geminiAllowedFields: readonly string[];
    };
}): NativeProtocolSpec;
export declare function resolveHubProtocolAllowlistsWithNative(): NativeHubProtocolAllowlists;
export {};
