export type PdfEncodeBoundary = "input" | "contract" | "governance" | "scope" | "resource";
export type PdfEncodePermission = "filesystem:readwrite";
export type PdfEncodeSourceFormat = "markdown" | "html" | "images" | "structured-content";
export type PdfEncodeGate = {
    accepted: boolean;
    reason?: string;
};
export type PdfEncodeTarget = {
    outputPath: string;
    sourceFormat: PdfEncodeSourceFormat;
    sourceLabel: string;
    title?: string;
    pageSize?: "a4" | "letter" | "legal" | "runtime-default";
};
export type PdfEncodeContext = {
    runtimeId?: string;
    invocationId?: string;
    workspaceRoot?: string;
    dryRun?: boolean;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    contract?: PdfEncodeGate;
    governance?: PdfEncodeGate;
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type PdfEncodeRequest = {
    target?: Partial<PdfEncodeTarget>;
    context?: PdfEncodeContext;
};
export type PdfEncodeEnvelope = {
    outputPath: string;
    bytesWritten: 0;
    pageCount: 0;
    artifactAvailable: false;
};
export type PdfEncodeErrorCode = "MISSING_WORKSPACE_ROOT" | "MISSING_OUTPUT_PATH" | "OUTPUT_OUT_OF_SCOPE" | "MISSING_SOURCE_FORMAT" | "INVALID_SOURCE_FORMAT" | "MISSING_SOURCE_LABEL" | "INVALID_PAGE_SIZE" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED" | "REAL_EXECUTION_BLOCKED";
export type PdfEncodeError = {
    code: PdfEncodeErrorCode;
    message: string;
    boundary: PdfEncodeBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type PdfEncodeAuditEvent = {
    type: string;
    toolId: "office.pdfEncode";
    invocationId: string;
    dryRun: true;
    outputPath?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type PdfEncodePlan = {
    kind: "agentCore.basicTool.office.pdfEncode";
    toolId: "office.pdfEncode";
    capability: "encode-pdf";
    workspaceRoot: string;
    target: PdfEncodeTarget;
    operationPreview: readonly string[];
    dryRun: true;
    executionBlocked: true;
    requiredPermissions: readonly PdfEncodePermission[];
    requiresTapApproval: true;
    unsafeSideEffects: false;
    acceptedScopes: readonly string[];
    resultEnvelope: PdfEncodeEnvelope;
};
export type PdfEncodeResult = {
    ok: true;
    toolId: "office.pdfEncode";
    plan: PdfEncodePlan;
    audit: readonly PdfEncodeAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "office.pdfEncode";
    error: PdfEncodeError;
    audit: readonly PdfEncodeAuditEvent[];
    events: readonly string[];
};
export declare const pdfEncodeDescriptor: {
    readonly toolId: "office.pdfEncode";
    readonly capability: "encode-pdf";
    readonly route: "toolabilityPool.officeBase.Portable_Document_Format";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["filesystem:readwrite"];
    readonly unsafeSideEffects: false;
};
export declare function planPdfEncode(request?: PdfEncodeRequest): PdfEncodeResult;
