import { type DistributionSession, type DistributionSessionList, type CreateSessionParams, type UpdateSessionParams, type SessionKeyList, type AddKeysResult, type DispenseResult } from "./types.js"; /** * HTTP client for distribution session management. * * Distribution sessions gate access to an inviter's key pool via * quota, expiry, and pause controls. Each session gets a unique slug * for QR codes / links. * * Session management endpoints require authentication. Pass a `getToken` * callback to supply the Bearer JWT. The `dispense` endpoint is public. */ export declare class Distributions { private readonly baseUrl; private readonly getToken?; constructor(baseUrl: string, getToken?: (() => Promise) | undefined); private getBaseUrl; private getAuthHeaders; createSession(params: CreateSessionParams): Promise; listSessions(inviter: string, opts?: { limit?: number; offset?: number; }): Promise; getSession(id: string): Promise; updateSession(id: string, params: UpdateSessionParams): Promise; deleteSession(id: string): Promise; addKeys(id: string, keys: string[]): Promise; listKeys(id: string, opts?: { limit?: number; offset?: number; }): Promise; removeKey(id: string, keyId: string): Promise; /** * Dispense a key via a distribution session slug (public, no auth required). * * @throws {DispenseError} with typed code: * - `SESSION_NOT_FOUND` (404), `POOL_EMPTY` (404), `SESSION_EXPIRED` (410), * `QUOTA_EXHAUSTED` (410), `SESSION_PAUSED` (423), `RATE_LIMITED` (429) */ dispense(slug: string): Promise; } //# sourceMappingURL=Distributions.d.ts.map