import { MembershipOp } from '@towns-protocol/proto';
import { PersistedObservable } from '../../../observable/persistedObservable';
import { Store } from '../../../store/store';
import { RiverConnection } from '../../river-connection/riverConnection';
export interface UserMembership {
    streamId: string;
    op: MembershipOp;
    inviter?: string;
    streamParentId?: string;
}
export interface UserMembershipsModel {
    id: string;
    streamId: string;
    initialized: boolean;
    memberships: Record<string, UserMembership>;
}
export declare class UserMemberships extends PersistedObservable<UserMembershipsModel> {
    private riverConnection;
    constructor(id: string, store: Store, riverConnection: RiverConnection);
    protected onLoaded(): void;
    private onClientStarted;
    getMembership(streamId: string): UserMembership | undefined;
    isMember(streamId: string, membership: MembershipOp): boolean;
    isJoined(streamId: string): boolean;
    private initialize;
    private onStreamInitialized;
    private onUserStreamMembershipChanged;
}
//# sourceMappingURL=userMemberships.d.ts.map