export type CameraContentStorageBoundary = "input" | "contract" | "governance" | "scope" | "provider";
export type CameraContentStorageGate = {
    accepted?: boolean;
    allowed?: boolean;
    reason?: string;
};
export type CameraContentStorageContext = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: CameraContentStorageGate;
    contract?: CameraContentStorageGate;
    governance?: CameraContentStorageGate;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type CameraContentStorageRetentionPolicy = "ephemeral" | "session-only" | "session-scoped" | "persistent";
export type CameraContentStorageKind = "camera-photo" | "camera-frame" | "camera-recording" | "generic";
export type CameraContentStorageTarget = {
    contentRef: string;
    contentKind: CameraContentStorageKind;
    storageTarget: string;
    retentionPolicy: CameraContentStorageRetentionPolicy;
};
export type CameraContentStorageProviderRequest = {
    operation: "computeruse.cameraContentStorage.store";
    target: CameraContentStorageTarget;
    context: {
        runtimeId?: string;
        sessionId?: string;
        invocationId?: string;
        auditMetadata?: Readonly<Record<string, unknown>>;
    };
    purpose: string;
};
export type CameraContentStorageProviderResult = {
    storedArtifactId: string;
    storageUri?: string;
    retentionPolicy?: CameraContentStorageRetentionPolicy;
    metadata?: Readonly<Record<string, unknown>>;
};
export type CameraContentStorageProvider = (request: CameraContentStorageProviderRequest) => Promise<CameraContentStorageProviderResult> | CameraContentStorageProviderResult;
export type CameraContentStorageRequest = {
    target?: unknown;
    context?: unknown;
    contentRef?: unknown;
    cameraContentRef?: unknown;
    artifactRef?: unknown;
    contentKind?: unknown;
    storageTarget?: unknown;
    retentionPolicy?: unknown;
    purpose?: unknown;
    metadata?: unknown;
    provider?: CameraContentStorageProvider;
};
export type CameraContentStorageErrorCode = "INVALID_REQUEST" | "INVALID_TARGET" | "INVALID_CONTEXT" | "MISSING_RUNTIME_ID" | "MISSING_CONTENT_REF" | "INVALID_CONTENT_REF" | "INVALID_CONTENT_KIND" | "MISSING_STORAGE_TARGET" | "INVALID_STORAGE_TARGET" | "INVALID_RETENTION_POLICY" | "MISSING_PURPOSE" | "SCOPE_DENIED" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_FAILURE";
export type CameraContentStorageError = {
    code: CameraContentStorageErrorCode;
    message: string;
    boundary: CameraContentStorageBoundary;
    publicSafe: true;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type CameraContentStorageAuditEvent = {
    type: string;
    toolId: "computeruse.cameraContentStorage";
    invocationId: string;
    dryRun: boolean;
    contentRef?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type CameraContentStorageOutput = {
    kind: "agentCore.basicTool.computeruse.cameraContentStorage";
    target: CameraContentStorageTarget;
    purpose: string;
    dispatch: "dry-run" | "runtime-artifact";
    dryRun: boolean;
    providerCalled: boolean;
    executionBlocked: boolean;
    unsafeSideEffects: true;
    permissionsRequired: readonly ["camera:read", "artifact:read", "artifact:write"];
    requiresTapApproval: true;
    privacyReviewRequired: true;
    acceptedScopes: readonly string[];
    runtimeEntry: {
        port: "BaseToolExecutorPort.artifact.store";
        operation: "computeruse.cameraContentStorage.store";
        runtimeOwnsCameraMaterial: true;
        runtimeOwnsArtifactStorage: true;
        runtimeOwnsRetentionPolicy: true;
        baseToolOwnsTapStrategy: false;
    };
    storageEnvelope: {
        resource: "camera-content";
        stored: boolean;
        metadataOnly: boolean;
        contentRef: string;
        contentKind: CameraContentStorageKind;
        storageTarget: string;
        retentionPolicy: CameraContentStorageRetentionPolicy;
        storedArtifactId?: string;
        storageUri?: string;
    };
    providerMetadata?: Readonly<Record<string, unknown>>;
};
export type CameraContentStorageResult = {
    ok: true;
    toolId: "computeruse.cameraContentStorage";
    output: CameraContentStorageOutput;
    audit: readonly CameraContentStorageAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "computeruse.cameraContentStorage";
    error: CameraContentStorageError;
    audit: readonly CameraContentStorageAuditEvent[];
    events: readonly string[];
};
export declare const cameraContentStorageDescriptor: {
    readonly toolId: "computeruse.cameraContentStorage";
    readonly capability: "store-camera-content-artifact";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.computeruseBase.cameraAccess";
    readonly defaultDryRun: true;
    readonly defaultContentKind: "camera-photo";
    readonly defaultRetentionPolicy: "session-scoped";
    readonly allowedStorageSchemes: readonly ["artifact://", "session://", "runtime://", "memory://"];
    readonly tapOwnsApproval: true;
    readonly runtimeEntry: "BaseToolExecutorPort.artifact.store";
    readonly permissionsRequired: readonly ["camera:read", "artifact:read", "artifact:write"];
    readonly unsafeSideEffects: true;
};
export declare function executeCameraContentStorage(request?: unknown): Promise<CameraContentStorageResult>;
export declare const planCameraContentStorage: typeof executeCameraContentStorage;
