export type OfficeSlidesVisionCheckPermission = "filesystem:read" | "office:slides:read" | "vision:read";
export type OfficeSlidesVisionCheckErrorBoundary = "input" | "scope" | "permission" | "contract";
export type OfficeSlidesVisionCheckKind = "renderability" | "layout-overlap" | "text-legibility" | "asset-presence";
export type OfficeSlidesVisionCheckContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    allowedPresentationRoots?: readonly string[];
    grantedPermissions?: readonly OfficeSlidesVisionCheckPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type OfficeSlidesVisionCheckTarget = {
    presentationPath: string;
    checks: readonly OfficeSlidesVisionCheckKind[];
    slideNumbers: readonly number[];
    renderScale: number;
};
export type OfficeSlidesVisionCheckRequest = {
    target?: Partial<OfficeSlidesVisionCheckTarget>;
    context?: OfficeSlidesVisionCheckContext;
};
export type OfficeSlidesVisionCheckErrorCode = "MISSING_PRESENTATION_PATH" | "INVALID_CHECK" | "INVALID_SLIDE_NUMBER" | "INVALID_RENDER_SCALE" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "REAL_EXECUTION_BLOCKED";
export type OfficeSlidesVisionCheckError = {
    code: OfficeSlidesVisionCheckErrorCode;
    message: string;
    boundary: OfficeSlidesVisionCheckErrorBoundary;
    publicSafe: true;
};
export type OfficeSlidesVisionCheckAuditEvent = {
    type: string;
    toolId: "office.slidesVisionCheck";
    invocationId: string;
    dryRun: boolean;
    presentationPath?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type OfficeSlidesVisionCheckOutput = {
    kind: "agentCore.basicTool.office.slidesVisionCheck";
    target: OfficeSlidesVisionCheckTarget;
    actionPreview: readonly string[];
    dryRun: true;
    executionBlocked: true;
    permissionsRequired: readonly OfficeSlidesVisionCheckPermission[];
    unsafeSideEffects: false;
    resultEnvelope: {
        findings: readonly {
            slideNumber: number;
            check: OfficeSlidesVisionCheckKind;
            severity: "info" | "warning" | "error";
            message: string;
        }[];
        metadata: Readonly<Record<string, unknown>>;
    };
};
export type OfficeSlidesVisionCheckResult = {
    ok: true;
    toolId: "office.slidesVisionCheck";
    output: OfficeSlidesVisionCheckOutput;
    audit: readonly OfficeSlidesVisionCheckAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "office.slidesVisionCheck";
    error: OfficeSlidesVisionCheckError;
    audit: readonly OfficeSlidesVisionCheckAuditEvent[];
    events: readonly string[];
};
export declare const officeSlidesVisionCheckDescriptor: {
    readonly toolId: "office.slidesVisionCheck";
    readonly capability: "check-presentation-vision";
    readonly route: "toolabilityPool.officeBase.presentations";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly unsafeSideEffects: false;
    readonly permissionsRequired: readonly ["filesystem:read", "office:slides:read", "vision:read"];
};
export declare function planOfficeSlidesVisionCheck(request?: OfficeSlidesVisionCheckRequest): OfficeSlidesVisionCheckResult;
