export type OfficeTableVisionCheckPermission = "filesystem:read" | "office:read" | "vision:analyze";
export type OfficeTableVisionCheckErrorBoundary = "input" | "scope" | "permission" | "contract";
export type OfficeTableVisionCheckContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    allowedFileRoots?: readonly string[];
    grantedPermissions?: readonly OfficeTableVisionCheckPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type OfficeTableVisionCheckKind = "layout" | "overflow" | "mergedCells" | "numberFormat" | "visualDiff";
export type OfficeTableVisionCheckTarget = {
    workbookPath: string;
    sheetName?: string;
    range?: string;
    checks: readonly OfficeTableVisionCheckKind[];
    referenceImagePath?: string;
    maxFindings: number;
};
export type OfficeTableVisionCheckRequest = {
    target?: {
        workbookPath?: string;
        sheetName?: string;
        range?: string;
        checks?: readonly OfficeTableVisionCheckKind[];
        referenceImagePath?: string;
        maxFindings?: number;
    };
    context?: OfficeTableVisionCheckContext;
};
export type OfficeTableVisionFinding = {
    check: OfficeTableVisionCheckKind;
    severity: "info" | "warning" | "error";
    address?: string;
    message: string;
};
export type OfficeTableVisionCheckEnvelope = {
    workbookPath: string;
    sheetName?: string;
    range?: string;
    findings: readonly OfficeTableVisionFinding[];
    truncated: false;
    metadata: {
        checks: readonly OfficeTableVisionCheckKind[];
        referenceImagePath?: string;
        maxFindings: number;
        requiresRenderedSnapshot: true;
        providerCallPlanned: false;
    };
};
export type OfficeTableVisionCheckErrorCode = "MISSING_WORKBOOK_PATH" | "INVALID_RANGE" | "MISSING_CHECKS" | "INVALID_CHECK" | "MISSING_REFERENCE_IMAGE" | "INVALID_RESOURCE_LIMIT" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "REAL_EXECUTION_BLOCKED";
export type OfficeTableVisionCheckError = {
    code: OfficeTableVisionCheckErrorCode;
    message: string;
    boundary: OfficeTableVisionCheckErrorBoundary;
    publicSafe: true;
};
export type OfficeTableVisionCheckAuditEvent = {
    type: string;
    toolId: "office.tableVisionCheck";
    invocationId: string;
    dryRun: boolean;
    targetPath?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type OfficeTableVisionCheckOutput = {
    kind: "agentCore.basicTool.office.tableVisionCheck";
    target: OfficeTableVisionCheckTarget;
    dryRun: true;
    executionBlocked: true;
    permissionsRequired: readonly OfficeTableVisionCheckPermission[];
    unsafeSideEffects: false;
    resultEnvelope: OfficeTableVisionCheckEnvelope;
};
export type OfficeTableVisionCheckResult = {
    ok: true;
    toolId: "office.tableVisionCheck";
    output: OfficeTableVisionCheckOutput;
    audit: readonly OfficeTableVisionCheckAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "office.tableVisionCheck";
    error: OfficeTableVisionCheckError;
    audit: readonly OfficeTableVisionCheckAuditEvent[];
    events: readonly string[];
};
export declare const officeTableVisionCheckDescriptor: {
    readonly toolId: "office.tableVisionCheck";
    readonly capability: "vision-check-table";
    readonly route: "toolabilityPool.officeBase.spreadsheet";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["filesystem:read", "office:read", "vision:analyze"];
    readonly unsafeSideEffects: false;
};
export declare function planOfficeTableVisionCheck(request?: OfficeTableVisionCheckRequest): OfficeTableVisionCheckResult;
