import type { RunContext } from './approval-bus.js'; export interface PushPayload { /** Body text to send. Required. Empty / whitespace-only → error. */ text?: unknown; /** Optional override: ::. Same-user same- * platform only; requires AGIM_PUSH_CROSS_THREAD=on. Omit to push to * the caller's own thread (the common case). */ toThread?: unknown; /** Optional placeholder for future card support — ignored for now (v1 * is text-only). */ kind?: unknown; } export type PushResult = { ok: true; result: { outboxId: number; immediate: boolean; targetThread: string; /** D+ Stage 1 (#9) — set true when the notification-evaluator * gate suppressed the message. Outbox row was not enqueued; * `outboxId=0` and `immediate=false` in that case. From the * caller's view the push "succeeded" because the agent did * its part; the gate decides if the human gets pinged. */ suppressed?: boolean; /** Reason returned by the evaluator. Empty unless suppressed. */ suppressedReason?: string; }; } | { ok: false; error: string; }; /** Public entry called by approval-bus.handlePush. */ export declare function handlePushOp(payload: PushPayload, ctx: RunContext): Promise; //# sourceMappingURL=push-rpc.d.ts.map