import type { BaseToolStoragePlan } from "./storageLogic.js";
export type BaseToolStoragePlaneBoundary = "input" | "contract" | "governance" | "scope" | "presentation";
export type BaseToolStoragePlaneVisibility = "summary" | "records" | "reuse-index";
export type BaseToolStoragePlaneGate = {
    accepted: boolean;
    reason?: string;
};
export type BaseToolStoragePlaneRequest = {
    runtimeId?: string;
    sessionId?: string;
    storagePlan?: BaseToolStoragePlan;
    visibility?: BaseToolStoragePlaneVisibility;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    contract?: BaseToolStoragePlaneGate;
    governance?: BaseToolStoragePlaneGate;
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type BaseToolStoragePlaneErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_STORAGE_PLAN" | "STORAGE_PLAN_SCOPE_MISMATCH" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED";
export type BaseToolStoragePlaneError = {
    code: BaseToolStoragePlaneErrorCode;
    message: string;
    boundary: BaseToolStoragePlaneBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type BaseToolStoragePlaneRecordView = {
    id: string;
    kind: string;
    toolName: string;
    invocationId: string;
    reuseKey?: string;
    tags: readonly string[];
    payloadExposed: false;
};
export type BaseToolStoragePlaneView = {
    plane: "baseTool_storagePlane";
    sourcePlanKind: BaseToolStoragePlan["kind"];
    storagePool: BaseToolStoragePlan["pool"];
    runtimeId: string;
    sessionId: string;
    invocationId: string;
    visibility: BaseToolStoragePlaneVisibility;
    recordCount: number;
    recordKinds: Readonly<Record<string, number>>;
    toolNames: readonly string[];
    reuseKeys: readonly string[];
    records: readonly BaseToolStoragePlaneRecordView[];
    acceptedScopes: readonly string[];
    audit: {
        event: "agentCore.basicTool.storagePlane.exposed";
        governanceRequired: true;
        storageLogicOwnsWriteRules: true;
        planeOwnsPresentation: true;
        metadata: Readonly<Record<string, unknown>>;
    };
    unsafeSideEffects: false;
};
export type BaseToolStoragePlaneResult = {
    ok: true;
    view: BaseToolStoragePlaneView;
    events: readonly string[];
} | {
    ok: false;
    error: BaseToolStoragePlaneError;
    events: readonly string[];
};
export declare const baseToolStoragePlaneDescriptor: {
    readonly plane: "baseTool_storagePlane";
    readonly purpose: "govern, expose, and present base tool storage plans produced by storageLogic";
    readonly storagePool: "storagePool.baseToolStorage";
    readonly ownsStorageWriteRules: false;
    readonly ownsGovernanceExposure: true;
    readonly unsafeSideEffects: false;
};
export declare function exposeBaseToolStoragePlane(request?: BaseToolStoragePlaneRequest): BaseToolStoragePlaneResult;
