import { type Reply } from './client.js'; import type { HelloFields, Tier } from './protocol.js'; export type JoinInput = Omit & { /** Defaults to `session`; processes Monomind launches register as `external` / `org-role`. */ tier?: Tier; capabilities?: string[]; tags?: string[]; }; type Call = (req: Record) => Promise; /** * `call` may start a hub (join, heartbeat re-registration); `byeCall` must not: saying goodbye to a * hub that is already gone is not worth starting one. */ export declare function createSessionPresence(call?: Call, intervalMs?: number, byeCall?: Call, /** Told the credentials whenever they change (join, re-registration) and when they go away. */ onAuth?: (auth: { addr: string; key: string; alias?: string; } | undefined) => void): { join: (i: JoinInput) => Promise; leave: () => Promise; addr: () => string | undefined; /** The address and key hub calls made on this session's behalf must carry. */ auth: () => { addr: string; key: string; } | undefined; }; export declare const sessionPresence: { join: (i: JoinInput) => Promise; leave: () => Promise; addr: () => string | undefined; /** The address and key hub calls made on this session's behalf must carry. */ auth: () => { addr: string; key: string; } | undefined; }; export {}; //# sourceMappingURL=session-presence.d.ts.map