import { MutationProcedureDescriptor } from '@voltro/protocol'; import { PluginRpcClientDescriptor } from '@voltro/protocol'; import { QueryProcedureDescriptor } from '@voltro/protocol'; import { Schema } from 'effect'; export declare const archiveDescriptor: MutationProcedureDescriptor<"notifications.archive", Schema.Struct<{ id: typeof Schema.String; }>, Schema.Struct<{ ok: typeof Schema.Boolean; }>, typeof Schema.Never>; /** * The plugin's canonical package name — the key an app's `alias` is recorded * under, and what `./web`'s hooks resolve their tags through. * * It lives in this BROWSER-SAFE module rather than in `index.ts` because both * halves need it and only one of them may reach the server graph: `index.ts` * passes it to `pluginInstanceName` / `baseName`, and `web.ts` passes it to * `pluginTag`. A second copy in `web.ts` would be a second definition of the * plugin's identity with nothing comparing them. */ export declare const BASE_NAME = "@voltro/plugin-notifications"; export declare const clearQuietHoursDescriptor: MutationProcedureDescriptor<"notifications.clearQuietHours", Schema.Struct<{}>, Schema.Struct<{ ok: typeof Schema.Boolean; }>, typeof Schema.Never>; export declare const inboxDescriptor: QueryProcedureDescriptor<"notifications.inbox", Schema.Struct<{ unreadOnly: Schema.optional; limit: Schema.optional; }>, Schema.Array$>, typeof Schema.Never>; export declare const markAllReadDescriptor: MutationProcedureDescriptor<"notifications.markAllRead", Schema.Struct<{}>, Schema.Struct<{ count: typeof Schema.Number; }>, typeof Schema.Never>; export declare const markReadDescriptor: MutationProcedureDescriptor<"notifications.markRead", Schema.Struct<{ id: typeof Schema.String; }>, Schema.Struct<{ ok: typeof Schema.Boolean; }>, typeof Schema.Never>; export declare const markUnreadDescriptor: MutationProcedureDescriptor<"notifications.markUnread", Schema.Struct<{ id: typeof Schema.String; }>, Schema.Struct<{ ok: typeof Schema.Boolean; }>, typeof Schema.Never>; /** Declared for the codegen (`VoltroPlugin.rpcClientDescriptors`) so each tag is * emitted into the generated client group. Kept in lockstep with the exports. */ export declare const notificationsRpcClientImports: ReadonlyArray; export declare const preferencesDescriptor: QueryProcedureDescriptor<"notifications.preferences", Schema.Struct<{}>, Schema.Array$>, typeof Schema.Never>; export declare const setPreferenceDescriptor: MutationProcedureDescriptor<"notifications.setPreference", Schema.Struct<{ category: typeof Schema.String; channel: typeof Schema.String; enabled: typeof Schema.Boolean; }>, Schema.Struct<{ ok: typeof Schema.Boolean; }>, typeof Schema.Never>; export declare const setQuietHoursDescriptor: MutationProcedureDescriptor<"notifications.setQuietHours", Schema.Struct<{ startMinute: typeof Schema.Number; endMinute: typeof Schema.Number; tz: Schema.optional; policy: Schema.optional>; }>, Schema.Struct<{ ok: typeof Schema.Boolean; }>, typeof Schema.Never>; export declare const subscribeDescriptor: MutationProcedureDescriptor<"notifications.subscribe", Schema.Struct<{ topic: typeof Schema.String; }>, Schema.Struct<{ ok: typeof Schema.Boolean; }>, typeof Schema.Never>; export declare const unarchiveDescriptor: MutationProcedureDescriptor<"notifications.unarchive", Schema.Struct<{ id: typeof Schema.String; }>, Schema.Struct<{ ok: typeof Schema.Boolean; }>, typeof Schema.Never>; export declare const unreadCountDescriptor: QueryProcedureDescriptor<"notifications.unreadCount", Schema.Struct<{}>, Schema.Struct<{ count: typeof Schema.Number; }>, typeof Schema.Never>; export declare const unsubscribeDescriptor: MutationProcedureDescriptor<"notifications.unsubscribe", Schema.Struct<{ topic: typeof Schema.String; }>, Schema.Struct<{ ok: typeof Schema.Boolean; }>, typeof Schema.Never>; export declare const webPushPublicKeyDescriptor: QueryProcedureDescriptor<"notifications.webPushPublicKey", Schema.Struct<{}>, Schema.Struct<{ key: typeof Schema.String; }>, typeof Schema.Never>; /** Registered only when the app configures a web-push channel — see * `notificationsPlugin`. */ export declare const webPushRpcClientImports: ReadonlyArray; export declare const webPushStatusDescriptor: QueryProcedureDescriptor<"notifications.webPushStatus", Schema.Struct<{}>, Schema.Struct<{ endpoints: typeof Schema.Number; }>, typeof Schema.Never>; export declare const webPushSubscribeDescriptor: MutationProcedureDescriptor<"notifications.webPushSubscribe", Schema.Struct<{ endpoint: typeof Schema.String; p256dh: typeof Schema.String; auth: typeof Schema.String; ua: Schema.optional; }>, Schema.Struct<{ ok: typeof Schema.Boolean; }>, typeof Schema.Never>; export declare const webPushUnsubscribeDescriptor: MutationProcedureDescriptor<"notifications.webPushUnsubscribe", Schema.Struct<{ endpoint: typeof Schema.String; }>, Schema.Struct<{ ok: typeof Schema.Boolean; }>, typeof Schema.Never>; export { }