import { ChannelName, Notifiable } from "../types.mjs"; //#region ../notifications/src/contracts/preference-provider.contract.d.ts /** * Pre-send gate consulted BEFORE each channel dispatch. Returns the subset of * `requested` channels this recipient accepts (mute lists, quiet hours, * per-type opt-ins, …). * * - Bypassed when `SendOptions.force === true`. * - Dropped channels fire a `skipped` event with reason `"preference"`. * * App-owned (set in the `preferences` slot of `config/notifications.ts`). The * package reserves the slot but ships no default implementation. */ interface PreferenceProvider { resolveChannels(notifiable: Notifiable, type: string, requestedChannels: ChannelName[]): Promise | ChannelName[]; } //#endregion export { PreferenceProvider }; //# sourceMappingURL=preference-provider.contract.d.mts.map