/**
 * `events` namespace — the cursored project events feed (gateway
 * `project-events-outbox`). One call answers "what happened to my project
 * since I last looked": deploy activations, mailbox suspensions, transfers,
 * lifecycle cliffs, verification outcomes — each with platform-synthesized
 * `next_actions[]` drill-downs.
 *
 * Cursor contract (opaque, store-and-echo): keep the page's `cursor`
 * wherever you keep state and pass it back as `{ cursor }` next time. An
 * unusable cursor never errors — the page returns `reset: true` +
 * `earliest_cursor` and restarts from the earliest retained event. Events
 * become visible within seconds of commit (a short visibility watermark
 * orders concurrent transactions) and are never lost after it.
 *
 * Exposed both unscoped (`r.events.list(projectId, …)`) and project-scoped
 * (`r.project(id).events.list(…)`), mirroring `r.grants` / `r.functions`.
 * The read is never lifecycle-gated: a frozen project's feed stays readable.
 *
 * `{ source, eventType }` filter the app-emitted lane from the platform's
 * own events — see {@link ListEventsOptions}. Consumers should key on
 * `(source, event_type)` together, since the platform's vocabulary and an
 * app's own `event_type` names are only disambiguated by the pair.
 */
import type { Client } from "../kernel.js";
import type { ListEventsOptions, ProjectEventFeedPage } from "./events.types.js";
export declare class Events {
    private readonly client;
    constructor(client: Client);
    /**
     * Read a page of a project's events feed
     * (`GET /projects/v1/:project_id/events`). Accepted credentials: the
     * project's own service_key, a SIWX/control-plane principal with
     * `project.read`, or a grant key. `opts.source` / `opts.eventType`
     * filter to the app lane, the platform lane, or one-or-more event types;
     * both compose with `cursor`/`limit` unchanged.
     */
    list(projectId: string, opts?: ListEventsOptions): Promise<ProjectEventFeedPage>;
    /**
     * Read the org-wide feed (`GET /orgs/v1/:org_id/events`) — every fact the
     * organization owns. That is a SUPERSET of its project feeds, not a union
     * of them: it also carries organization-level facts, which belong to no
     * project, arrive with `project_id: null`, and are unreachable from any
     * project feed.
     *
     * Principal-only: requires an active org membership; a project service_key
     * is rejected by the gateway. Same `opts.source` / `opts.eventType` filters
     * as {@link list}.
     *
     * Cursors do NOT interchange with {@link list}, even though an event's `id`
     * is the same in both — a cursor names a position inside one projection.
     * Carrying one across returns `reset: true`; see {@link ListEventsOptions.cursor}.
     */
    listForOrg(orgId: string, opts?: ListEventsOptions): Promise<ProjectEventFeedPage>;
}
//# sourceMappingURL=events.d.ts.map