/** * Replaces a rule whole. `scope` is required and `role` is not, mirroring the * discovery document, which marks `role` required for `acl.insert` alone. For * changing only the role and leaving the rest alone, see patch_acl_rule. * * This is a PUT, which COVERAGE.md otherwise says the suite skips in favor of * patch. The reason that policy exists (a full-resource PUT over a lossy * projection clobbers the fields the projection dropped) does not apply here: * `role` and `scope` are the whole writable surface of an ACL rule, and both * are projected, so nothing can be clobbered by omission. * * Destructive despite the rubric's "updates are not destructive" default * (the `update_event` precedent), following instead the standing-side-effect * cluster of `gmail/create_filter` and `sheets/add_protected_range`: this * update changes who can reach a calendar, the access it confers persists * until something revokes it, and it can escalate a scope to `owner`, which * confers control over the calendar's own sharing. * * Open-world and NOT idempotent on the precedent of the sends * (`gmail/send_message`, `gmail/send_draft`), because `sendNotifications` * defaults to true at Google: a replay with identical arguments can send * another round of sharing notifications, which is an additional effect on * the environment. * The hint describes the riskiest accepted input, and `src/lib/server.ts` * reads `idempotentHint` as permission to silently retry after a credential * refresh. Access removal sends no sharing notifications. */ export declare const update_acl_rule: import("../../../lib/operation.js").Operation>; scope: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{ type: import("zod").ZodLiteral<"default">; }, import("zod/v4/core").$strict>, import("zod").ZodObject<{ type: import("zod").ZodEnum<{ domain: "domain"; group: "group"; user: "user"; }>; value: import("zod").ZodString; }, import("zod/v4/core").$strict>], "type">; calendarId: import("zod").ZodOptional; sendNotifications: import("zod").ZodOptional; }, import("zod/v4/core").$strict>, import("zod").ZodObject<{ id: import("zod").ZodString; role: import("zod").ZodOptional>; scope: import("zod").ZodOptional; }, import("zod/v4/core").$strict>, import("zod").ZodObject<{ type: import("zod").ZodEnum<{ domain: "domain"; group: "group"; user: "user"; }>; value: import("zod").ZodString; }, import("zod/v4/core").$strict>], "type">>; }, import("zod/v4/core").$strip>>; //# sourceMappingURL=index.d.ts.map