export type OmniViewImagePermission = "filesystem:read" | "omni:image:view";
export type OmniViewImageBoundary = "input" | "scope" | "permission" | "contract" | "governance" | "provider";
export type OmniViewImageGate = {
    accepted?: boolean;
    allowed?: boolean;
    reason?: string;
};
export type OmniViewImageDetail = "low" | "high" | "original";
export type OmniViewImageMediaType = "image/png" | "image/jpeg" | "image/webp" | "image/gif" | "unknown";
export type OmniViewImageTarget = {
    imagePath?: string;
    imageRef?: string;
    mediaType: OmniViewImageMediaType;
    detail: OmniViewImageDetail;
    maxBytes?: number;
};
export type OmniViewImageContext = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: OmniViewImageGate;
    allowedImageRoots?: readonly string[];
    grantedPermissions?: readonly OmniViewImagePermission[];
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    contract?: OmniViewImageGate;
    governance?: OmniViewImageGate;
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type OmniViewImageRequest = {
    target?: unknown;
    context?: unknown;
    provider?: OmniViewImageProvider;
};
export type OmniViewImageProviderRequest = {
    operation: "omni.viewImage.prepareImageInput";
    target: OmniViewImageTarget;
    context: {
        runtimeId?: string;
        sessionId?: string;
        invocationId?: string;
        auditMetadata?: Readonly<Record<string, unknown>>;
    };
};
export type OmniViewImageProviderResult = {
    artifactId: string;
    mimeType?: string;
    metadata?: Readonly<Record<string, unknown>>;
};
export type OmniViewImageProvider = (request: OmniViewImageProviderRequest) => Promise<OmniViewImageProviderResult> | OmniViewImageProviderResult;
export type OmniViewImageErrorCode = "INVALID_REQUEST" | "INVALID_TARGET" | "INVALID_CONTEXT" | "MISSING_IMAGE_TARGET" | "IMAGE_PATH_OUT_OF_SCOPE" | "INVALID_DETAIL" | "INVALID_MAX_BYTES" | "INVALID_MEDIA_TYPE" | "PERMISSION_DENIED" | "SCOPE_DENIED" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_REJECTED";
export type OmniViewImageError = {
    code: OmniViewImageErrorCode;
    message: string;
    boundary: OmniViewImageBoundary;
    publicSafe: true;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type OmniViewImageAuditEvent = {
    type: string;
    toolId: "omni.viewImage";
    invocationId: string;
    dryRun: boolean;
    imagePath?: string;
    imageRef?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type OmniViewImageOutput = {
    kind: "agentCore.basicTool.omni.viewImage";
    target: OmniViewImageTarget;
    dispatch: "dry-run" | "runtime-omni";
    dryRun: boolean;
    providerCalled: boolean;
    executionBlocked: boolean;
    unsafeSideEffects: false;
    permissionsRequired: readonly OmniViewImagePermission[];
    requiresTapApproval: true;
    runtimeEntry: {
        port: "BaseToolExecutorPort.omni.transformMedia";
        operation: "omni.viewImage.prepareImageInput";
        runtimeOwnsMaterial: true;
        baseToolOwnsProviderBodyLowering: false;
    };
    viewEnvelope: {
        resource: "image";
        opened: false;
        metadataOnly: boolean;
        detail: OmniViewImageDetail;
        artifactId?: string;
        mimeType?: string;
    };
    providerMetadata?: Readonly<Record<string, unknown>>;
};
export type OmniViewImageResult = {
    ok: true;
    toolId: "omni.viewImage";
    output: OmniViewImageOutput;
    audit: readonly OmniViewImageAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "omni.viewImage";
    error: OmniViewImageError;
    audit: readonly OmniViewImageAuditEvent[];
    events: readonly string[];
};
export declare const omniViewImageDescriptor: {
    readonly toolId: "omni.viewImage";
    readonly capability: "view-image";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.omniBase.imageTransformer";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["filesystem:read", "omni:image:view"];
    readonly runtimeEntry: "BaseToolExecutorPort.omni.transformMedia";
};
export declare function executeOmniViewImage(request?: unknown): Promise<OmniViewImageResult>;
export declare function planOmniViewImage(request?: unknown): Promise<OmniViewImageResult>;
