export declare const PRODUCER_KEY_HEADER = "x-notify-key";
export declare const PRODUCER_TIMESTAMP_HEADER = "x-notify-timestamp";
export declare const PRODUCER_SIGNATURE_HEADER = "x-notify-signature";
export declare const DEFAULT_BASE_URL = "https://bell.kbsoap.com";
export declare function signProducerRequest(secret: string, keyId: string, timestampSeconds: number, rawBody: string): string;
export type ProducerEvent = {
    category: string;
    recipients: string[];
    actor_user_id?: string;
    title: string;
    body: string;
    coalesced_body?: string;
    data?: Record<string, string>;
    collapse_key?: string;
    dedupe_key?: string;
    coalesce_window_s?: number;
    ttl_s?: number;
    priority?: "normal" | "high";
};
export type EmitOutcome = {
    ok: true;
    replayed?: true;
    queued?: number;
    muted?: number;
    quiet_dropped?: number;
};
export declare class NotifyEmitError extends Error {
    readonly status: number;
    readonly code: string;
    constructor(status: number, code: string, message: string);
}
export type ProducerEmitter = (event: ProducerEvent) => Promise<EmitOutcome>;
export declare function producerHeaders(keyId: string, secret: string, rawBody: string, timestampSeconds?: number): Record<string, string>;
export declare function createProducerEmitter(options: {
    keyId: string;
    secret: string;
    baseUrl?: string;
    timeoutMs?: number;
}): ProducerEmitter;
