export type PdfDecodeBoundary = "input" | "contract" | "governance" | "scope" | "resource";
export type PdfDecodePermission = "filesystem:read";
export type PdfDecodeMode = "text" | "metadata" | "structure" | "attachments";
export type PdfDecodeGate = {
    accepted: boolean;
    reason?: string;
};
export type PdfDecodePageRange = {
    startPage: number;
    endPage: number;
};
export type PdfDecodeTarget = {
    sourcePath: string;
    mode?: PdfDecodeMode;
    pageRange?: PdfDecodePageRange;
    passwordRef?: string;
    includeImages?: boolean;
};
export type PdfDecodeContext = {
    runtimeId?: string;
    invocationId?: string;
    workspaceRoot?: string;
    dryRun?: boolean;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    contract?: PdfDecodeGate;
    governance?: PdfDecodeGate;
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type PdfDecodeRequest = {
    target?: Partial<PdfDecodeTarget>;
    context?: PdfDecodeContext;
};
export type PdfDecodedEnvelope = {
    textChunks: readonly string[];
    metadata: Readonly<Record<string, unknown>>;
    attachments: readonly string[];
    pagesInspected: readonly number[];
};
export type PdfDecodeErrorCode = "MISSING_WORKSPACE_ROOT" | "MISSING_SOURCE_PATH" | "SOURCE_OUT_OF_SCOPE" | "INVALID_DECODE_MODE" | "INVALID_PAGE_RANGE" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED" | "REAL_EXECUTION_BLOCKED";
export type PdfDecodeError = {
    code: PdfDecodeErrorCode;
    message: string;
    boundary: PdfDecodeBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type PdfDecodeAuditEvent = {
    type: string;
    toolId: "office.pdfDecode";
    invocationId: string;
    dryRun: true;
    sourcePath?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type PdfDecodePlan = {
    kind: "agentCore.basicTool.office.pdfDecode";
    toolId: "office.pdfDecode";
    capability: "decode-pdf";
    workspaceRoot: string;
    target: PdfDecodeTarget;
    operationPreview: readonly string[];
    dryRun: true;
    executionBlocked: true;
    requiredPermissions: readonly PdfDecodePermission[];
    requiresTapApproval: false;
    unsafeSideEffects: false;
    acceptedScopes: readonly string[];
    resultEnvelope: PdfDecodedEnvelope;
};
export type PdfDecodeResult = {
    ok: true;
    toolId: "office.pdfDecode";
    plan: PdfDecodePlan;
    audit: readonly PdfDecodeAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "office.pdfDecode";
    error: PdfDecodeError;
    audit: readonly PdfDecodeAuditEvent[];
    events: readonly string[];
};
export declare const pdfDecodeDescriptor: {
    readonly toolId: "office.pdfDecode";
    readonly capability: "decode-pdf";
    readonly route: "toolabilityPool.officeBase.Portable_Document_Format";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["filesystem:read"];
    readonly unsafeSideEffects: false;
};
export declare function planPdfDecode(request?: PdfDecodeRequest): PdfDecodeResult;
