export type OfficeSlidesEncodePermission = "filesystem:write" | "office:slides:write";
export type OfficeSlidesEncodeErrorBoundary = "input" | "scope" | "permission" | "contract";
export type OfficeSlidesEncodeContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    allowedPresentationRoots?: readonly string[];
    grantedPermissions?: readonly OfficeSlidesEncodePermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type OfficeSlidesEncodeFormat = "pptx" | "odp" | "pdf-preview";
export type OfficeSlidesEncodeSource = {
    title?: string;
    slideCount: number;
    sourceKind: "structured-outline" | "html-deck" | "markdown-deck";
};
export type OfficeSlidesEncodeTarget = {
    outputPath: string;
    format: OfficeSlidesEncodeFormat;
    overwrite: boolean;
    source: OfficeSlidesEncodeSource;
};
export type OfficeSlidesEncodeRequest = {
    target?: Partial<Omit<OfficeSlidesEncodeTarget, "source">> & {
        source?: Partial<OfficeSlidesEncodeSource>;
    };
    context?: OfficeSlidesEncodeContext;
};
export type OfficeSlidesEncodeErrorCode = "MISSING_OUTPUT_PATH" | "MISSING_SOURCE" | "INVALID_SOURCE_KIND" | "INVALID_SLIDE_COUNT" | "INVALID_FORMAT" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "REAL_EXECUTION_BLOCKED";
export type OfficeSlidesEncodeError = {
    code: OfficeSlidesEncodeErrorCode;
    message: string;
    boundary: OfficeSlidesEncodeErrorBoundary;
    publicSafe: true;
};
export type OfficeSlidesEncodeAuditEvent = {
    type: string;
    toolId: "office.slidesEncode";
    invocationId: string;
    dryRun: boolean;
    outputPath?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type OfficeSlidesEncodeOutput = {
    kind: "agentCore.basicTool.office.slidesEncode";
    target: OfficeSlidesEncodeTarget;
    actionPreview: readonly string[];
    dryRun: true;
    executionBlocked: true;
    permissionsRequired: readonly OfficeSlidesEncodePermission[];
    unsafeSideEffects: true;
    resultEnvelope: {
        producedPath?: string;
        encodedBytes?: number;
        metadata: Readonly<Record<string, unknown>>;
    };
};
export type OfficeSlidesEncodeResult = {
    ok: true;
    toolId: "office.slidesEncode";
    output: OfficeSlidesEncodeOutput;
    audit: readonly OfficeSlidesEncodeAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "office.slidesEncode";
    error: OfficeSlidesEncodeError;
    audit: readonly OfficeSlidesEncodeAuditEvent[];
    events: readonly string[];
};
export declare const officeSlidesEncodeDescriptor: {
    readonly toolId: "office.slidesEncode";
    readonly capability: "encode-presentation";
    readonly route: "toolabilityPool.officeBase.presentations";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly unsafeSideEffects: true;
    readonly permissionsRequired: readonly ["filesystem:write", "office:slides:write"];
};
export declare function planOfficeSlidesEncode(request?: OfficeSlidesEncodeRequest): OfficeSlidesEncodeResult;
