export interface RemoteMembership {
    hubUrl: string;
    teamId: string;
    teamName: string;
    syncToken: string;
    deploymentId: string;
    joinedAt: number;
    /** Token THIS spoke issued to the hub at join; the hub presents it on
     *  delegate-group calls so we can verify the request came from a hub we joined. */
    delegationToken?: string;
}
/** Record (or replace) a remote-team membership. */
export declare function addMembership(dataDir: string, m: Omit<RemoteMembership, 'joinedAt'> & {
    joinedAt?: number;
}, now?: number): RemoteMembership;
/** All remote teams this deployment has joined. */
export declare function listMemberships(dataDir: string): RemoteMembership[];
/** Find the membership whose delegationToken matches (verifies an incoming
 *  hub→spoke delegate call came from a hub this deployment actually joined). */
export declare function findMembershipByDelegationToken(dataDir: string, token: string): RemoteMembership | null;
/** Remove one membership. Returns true if removed. */
export declare function removeMembership(dataDir: string, hubUrl: string, teamId: string): boolean;
//# sourceMappingURL=federation-membership-store.d.ts.map