export declare function isRegisteredUserId(id: string | undefined): boolean; export interface ImActor { /** Raw id on the messenger (telegram user id, discord snowflake, …). */ imUserId: string; /** Registered Agim account, when this channel is bound. */ registeredUserId: string | null; } /** * Parse an actor string. Accepts raw IM ids, `imId:usr_…`, * `platform:imId`, `platform:imId:usr_…`, and bare `usr_…`. */ export declare function parseImActor(platform: string | undefined, userId: string | undefined): ImActor; /** Actor id stored on RouteContext / MessageContext after bind. */ export declare function composeImActor(imUserId: string, registeredUserId: string): string; /** Full channel key: `telegram:12345:usr_ab12`. */ export declare function imChannelKey(platform: string, imUserId: string, registeredUserId: string): string; /** * Stamp the registered user onto an IM identity when a binding exists. * Unbound IM stays the raw messenger id — Agim still works, no account to bill. * A client-supplied `:usr_…` suffix is ignored unless a binding confirms it. */ export declare function attachRegisteredIdentity(platform: string | undefined, userId: string | undefined): string | undefined; /** Registered account to bill / scope. Null when this IM channel has no user. */ export declare function registeredUserIdOf(platform: string | undefined, userId: string | undefined): string | null; //# sourceMappingURL=im-identity.d.ts.map