export type OfficeSlidesEditBoundary = "input" | "scope" | "governance" | "permission" | "contract";
export type OfficeSlidesEditPermission = "filesystem:read" | "filesystem:write" | "office:read" | "office:write";
export type OfficeSlidesEditGate = {
    accepted: boolean;
    reason?: string;
};
export type OfficeSlidesEditContext = {
    toolCallId?: string;
    workspaceRoot?: string;
    dryRun?: boolean;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    allowedPresentationRoots?: readonly string[];
    grantedPermissions?: readonly OfficeSlidesEditPermission[];
    governance?: OfficeSlidesEditGate;
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type OfficeSlidesEditOperationKind = "set-text" | "insert-slide" | "delete-slide" | "replace-image" | "set-speaker-notes";
export type OfficeSlidesEditOperation = {
    kind: OfficeSlidesEditOperationKind;
    slideNumber?: number;
    target?: string;
    value?: string;
};
export type OfficeSlidesEditRequest = {
    presentationPath?: string;
    outputPath?: string;
    operations?: readonly OfficeSlidesEditOperation[];
    context?: OfficeSlidesEditContext;
};
export type OfficeSlidesEditErrorCode = "MISSING_PRESENTATION_PATH" | "MISSING_OPERATIONS" | "INVALID_OPERATION" | "NUL_BYTE_IN_PATH" | "ABSOLUTE_PRESENTATION_PATH" | "PRESENTATION_PATH_OUTSIDE_SCOPE" | "SCOPE_DENIED" | "PERMISSION_DENIED" | "GOVERNANCE_REJECTED" | "REAL_EXECUTION_BLOCKED";
export type OfficeSlidesEditError = {
    code: OfficeSlidesEditErrorCode;
    message: string;
    boundary: OfficeSlidesEditBoundary;
    publicSafe: true;
};
export type OfficeSlidesEditAudit = {
    tool: "office.slidesEdit";
    toolCallId: string;
    presentationPath?: string;
    outputPath?: string;
    workspaceRoot?: string;
    dryRun: boolean;
    requestedScopes: readonly string[];
    acceptedScopes: readonly string[];
    permissionsRequired: readonly OfficeSlidesEditPermission[];
    unsafeSideEffects: true;
    metadata: Readonly<Record<string, unknown>>;
};
export type OfficeSlidesEditPlan = {
    kind: "agentCore.basicTool.office.slidesEdit.plan";
    operation: "presentation-edit";
    presentationPath: string;
    outputPath?: string;
    operations: readonly OfficeSlidesEditOperation[];
    commandPreview: readonly string[];
    dryRun: true;
    executionBlocked: true;
    writesFile: true;
    tapOwnsApproval: true;
};
export type OfficeSlidesEditResult = {
    ok: true;
    plan: OfficeSlidesEditPlan;
    audit: OfficeSlidesEditAudit;
    events: readonly string[];
} | {
    ok: false;
    error: OfficeSlidesEditError;
    audit: OfficeSlidesEditAudit;
    events: readonly string[];
};
export declare const officeSlidesEditDescriptor: {
    readonly tool: "office.slidesEdit";
    readonly route: "toolabilityPool.officeBase.presentations";
    readonly purpose: "plan a governed presentation edit while blocking real file writes in the first implementation";
    readonly permissionsRequired: readonly ["filesystem:read", "filesystem:write", "office:read", "office:write"];
    readonly defaultDispatch: "dry-run";
    readonly unsafeSideEffects: true;
    readonly tapOwnsApproval: true;
};
export declare function planOfficeSlidesEdit(request?: OfficeSlidesEditRequest): OfficeSlidesEditResult;
