import { type McpToolResult } from "../../_shared/baseToolAdapter.js";
export type McpReadResourcePermission = "mcp:resource:read";
export type McpReadResourceContext = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: {
        accepted?: boolean;
        allowed?: boolean;
        reason?: string;
    };
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    grantedPermissions?: readonly McpReadResourcePermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type McpReadResourceTarget = {
    serverId: string;
    resourceUri: string;
    acceptMimeTypes?: readonly string[];
    maxBytes?: number;
};
export type McpReadResourceRequest = {
    target?: Partial<McpReadResourceTarget> | null;
    context?: McpReadResourceContext;
};
export type McpReadResourceContent = {
    mimeType?: string;
    text?: string;
    bytesBase64?: string;
    raw?: unknown;
};
export type McpReadResourceContentEnvelope = {
    uri: string;
    contents: readonly McpReadResourceContent[];
    truncated: boolean;
    source: "mockable-envelope" | "runtime-provider";
};
export type McpReadResourceProviderResult = {
    uri?: string;
    contents: readonly McpReadResourceContent[];
    truncated?: boolean;
    providerMetadata?: Readonly<Record<string, unknown>>;
    raw?: unknown;
};
export type McpReadResourceProvider = (request: McpReadResourceTarget, context: Readonly<Record<string, unknown>>) => Promise<McpReadResourceProviderResult> | McpReadResourceProviderResult;
export type McpReadResourceOutput = {
    kind: "agentCore.basicTool.mcp.readResource";
    target: McpReadResourceTarget;
    dryRun: boolean;
    executionBlocked: boolean;
    providerCalled: boolean;
    permissionsRequired: readonly McpReadResourcePermission[];
    unsafeSideEffects: false;
    acceptedScopes: readonly string[];
    resourceEnvelope: McpReadResourceContentEnvelope;
    providerMetadata?: Readonly<Record<string, unknown>>;
};
export type McpReadResourceErrorCode = "INVALID_REQUEST" | "INVALID_CONTEXT" | "MISSING_SERVER_ID" | "INVALID_SERVER_ID" | "MISSING_RESOURCE_URI" | "INVALID_RESOURCE_URI" | "INVALID_MAX_BYTES" | "SCOPE_DENIED" | "PERMISSION_DENIED" | "GOVERNANCE_REJECTED" | "REAL_EXECUTION_BLOCKED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_REJECTED";
export type McpReadResourceResult = McpToolResult<McpReadResourceOutput, McpReadResourceErrorCode>;
export declare const mcpReadResourceDescriptor: {
    readonly toolId: "mcp.readResource";
    readonly capability: "read-mcp-resource";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.mcpBase.resource";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["mcp:resource:read"];
    readonly unsafeSideEffects: false;
};
export declare function planMcpResourceRead(request?: unknown): McpReadResourceResult;
export declare function executeMcpResourceRead(request?: unknown, provider?: McpReadResourceProvider): Promise<McpReadResourceResult>;
